CVS och SVN: Skillnad mellan sidversioner
Albert (diskussion | bidrag) (orkar applicera väldigt små shellskript för att wikifiera) |
Jaadu (diskussion | bidrag) (Fogade in gitmigreringsinstruktioner) |
||
(15 mellanliggande sidversioner av 6 användare visas inte) | |||
Rad 1: | Rad 1: | ||
CVS |
CVS är ett väldigt användbart verktyg. SVN är nyare. På denna sida beskrivs hur du |
||
använder versionshantering hos Lysator. |
|||
==Det gamla sättet, /lysator/cvsroot== |
|||
Sedan |
Sedan länge finns en cvsroot som alla Lysiter på ett någorlunda enkelt |
||
sätt kan skapa ett repository i. Problemet med den lösningen är att |
|||
endast Lysiter kan komma |
endast Lysiter kan komma åt den, och anonym access är inte möjlig. |
||
<P> |
|||
Hur man i detalj |
Hur man i detalj använder /lysator/cvsroot beskrivs inte på denna |
||
oebbsida. |
oebbsida. |
||
==Det nyare sättet, LysCVS och LSVN== |
|||
<H2>Det nya sttet, lysCVS</H2> |
|||
Eftersom det verkade finnas ett behov av |
Eftersom det verkade finnas ett behov av ett repository där man dels |
||
kan ha med icke-Lysiter som utvecklare, och dels |
kan ha med icke-Lysiter som utvecklare, och dels tillåta anonym |
||
access, utvecklades sommaren 2001 en |
access, utvecklades sommaren 2001 en lösning som tillåter detta. |
||
<P> |
|||
Lsningen finns att beskda bland annat i form av <a |
|||
href="http://cvs.lysator.liu.se">http://cvs.lysator.liu.se</a>. |
|||
Lsningen gr under namnet <b>LysCVS</b>. |
|||
<P> |
|||
LysCVS har ett oebbaserat administrationsinterface dr du sjlv som |
|||
vanlig anvndare kan skapa projekt, lgga till anvndare till detta |
|||
och s vidare. Nedan beskrivs hur du gr. |
|||
Sedan dess har även stöd för SVN dykt upp. |
|||
<H3>Att skapa nya projekt i LysCVS</H3> |
|||
Men nu är denna lösning under avveckling. Du rekommenderas att använda [[Git]] i stället. |
|||
LysCVS bygger p konceptet <i>projekt</i>. Varje projekt har en egen |
|||
CVSROOT och kan ha flera CVS-moduler. Det gr bra att ha samma namn p |
|||
en modul och projektet som modulen tillhr. |
|||
<P> |
|||
Peka din weblsare p <a |
|||
href="https://admin.lysator.liu.se">https://admin.lysator.liu.se/</a> |
|||
och logga in med ditt vanliga Lysatorlogin och -lsen. Du kommer nu |
|||
till en huvudsida dr du kan se vilka projekt du r medlem i och/eller |
|||
administratr fr. |
|||
<P> |
|||
Fr att skapa ett nytt projekt anvnder du menyalternativet "New |
|||
Project" i menyn till vnster. Skriv vad du vill att ditt projekt ska |
|||
heta, och tryck p knappen mrkt "Create!". Ditt projekt r nu skapat. |
|||
<P> |
|||
<B>OBSERVERA att det tar en stund, i nulget maximalt en kvart, innan |
|||
ditt projekt gr att anvnda</B> |
|||
Lösningen går under namnen '''LysCVS/LSVN''' och finns att beskåda bland annat i form av http://cvs.lysator.liu.se/. |
|||
<H4>Att brja anvnda det nyligen skapade projektet</H4> |
|||
LysCVS/LSVN har ett oebbaserat administrationsinterface där du själv som vanlig användare kan skapa projekt, lägga till användare till detta och så vidare. Nedan beskrivs hur du gör. |
|||
Enklast r att anvnda <code>cvs import</code>. Sg att du nyss har |
|||
skapat projektet <i>foo</i> i lysCVS. Vidare har du ett gng filer som |
|||
ska finnas i foo, de existerar i katalogen <i>/home/xyzzy/bar</i>. Du |
|||
===Att skapa nya projekt i LysCVS och LSVN=== |
|||
vill att filerna ska hamna i katalogen <i>gazonk</i> under cvsrooten |
|||
fr <i>foo</i> I s fall gr du ungefr shr: |
|||
LysCVS / LSVN bygger på konceptet <i>projekt</i>, som kan vara av typen cvs eller svn. |
|||
Varje cvs-projekt har en egen CVSROOT och kan ha flera CVS-moduler. |
|||
Det går bra att ha samma namn på en modul och projektet som modulen tillhör. |
|||
Peka din webläsare på https://admin.lysator.liu.se/ |
|||
och logga in med ditt vanliga Lysatorlogin och -lösen. Klicka på LysCVS/LSVN så får du upp |
|||
en huvudsida där du kan se vilka projekt du är medlem i och/eller |
|||
administratör för. |
|||
För att skapa ett nytt projekt använder du menyalternativet "New |
|||
Project" i menyn till vänster. Välj om du vill använda cvs, eller det nyare svn. |
|||
Skriv vad du vill att ditt projekt ska |
|||
heta, och tryck på knappen märkt "Create!". Ditt projekt är nu skapat. |
|||
'''OBSERVERA att det tar en stund, i nuläget maximalt en kvart, innan |
|||
ditt projekt går att använda''' |
|||
====Att börja använda det nyligen skapade projektet (cvs)==== |
|||
Enklast är att använda <code>cvs import</code>. Säg att du nyss har |
|||
skapat projektet ''foo'' i lysCVS. Vidare har du ett gäng filer som |
|||
ska finnas i foo, de existerar i katalogen ''/home/xyzzy/bar''. Du |
|||
vill att filerna ska hamna i katalogen ''gazonk'' under cvsrooten |
|||
för ''foo'' I så fall gör du ungefär såhär: |
|||
<pre> |
<pre> |
||
$ cd /home/xyzzy/bar |
$ cd /home/xyzzy/bar |
||
$ export CVS_RSH=ssh |
$ export CVS_RSH=ssh |
||
$ cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo import gazonk <username> start; |
$ cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo import gazonk <username> start; |
||
</pre> |
</pre> |
||
De |
De två sista argumenten är egentligen ''vendor'' och ''tag'', så |
||
du kan hitta |
du kan hitta på nått bättre än ditt användarnamn och "start" om du så |
||
önskar. |
|||
nskar. |
|||
<P> |
|||
Nu kan du, |
Nu kan du, från en annan katalog, checka ut dina filer med <pre> |
||
cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo co gazonk |
cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo co gazonk |
||
</pre> |
</pre> |
||
<H3>Att lgga till nya anvndare i ett projekt</H3> |
|||
====Att börja använda det nyligen skapade projektet (svn)==== |
|||
Fr att mjliggra <B>skrivaccess</B> fr andra n dig sjlv lgger du |
|||
Protokollet som stöds heter svn+ssh. |
|||
till anvndare till dina projekt. |
|||
'''OBS: Det sägs vara normalt att behöva ange lösenord flera gånger i rad (ungefär 3) med svn+ssh''' |
|||
<P> |
|||
G till huvudsidan och klicka p lnken mrkt "administrate" fr det |
|||
Kör |
|||
projekt du vill lgga till en anvndare till. Skriv mailadressen fr |
|||
svn co svn+ssh://<username>@lsvn.lysator.liu.se/svnroot/<projektnamn> |
|||
anvndaren i rutan, och tryck "Add". |
|||
för att checka ut ditt projekt. |
|||
<P> |
|||
Ta reda på mer om svn med |
|||
Om det r en Lysatoranvndare du lgger till r det inget mer du |
|||
svn help |
|||
behver gra, fr d finns redan alla uppgifter i NIS. Om det r en |
|||
eller leta upp dokumentationen på oebben. |
|||
extern (icke-Lysit) du vill lgga till fr du fylla i riktigt namn och |
|||
anvndarnamn p personen ifrga. <B>OBSERVERA att anvndarnamnet mste |
|||
===Att lägga till nya användare i ett projekt=== |
|||
brja p <i>_cvs_</i>. Detta fr att skydda Lysators |
|||
namnrymd</B>. Den externa personen fr ett mail med instruktioner om |
|||
För att möjliggöra '''skrivaccess''' för andra än dig själv lägger du |
|||
inloggningsnamn och lsenord - ett automatgenererat lsenord som r |
|||
till användare till dina projekt. |
|||
Gå till huvudsidan och klicka på länken märkt "administrate" för det |
|||
projekt du vill lägga till en användare till. Skriv mailadressen för |
|||
användaren i rutan, och tryck "Add". |
|||
Om det är en Lysatoranvändare du lägger till är det inget mer du |
|||
behöver göra, för då finns redan alla uppgifter i NIS. Om det är en |
|||
extern (icke-Lysit) du vill lägga till får du fylla i riktigt namn och |
|||
användarnamn på personen ifråga. '''OBSERVERA att användarnamnet måste |
|||
börja på ''_cvs_''. Detta för att skydda Lysators |
|||
namnrymd'''. Den externa personen får ett mail med instruktioner om |
|||
inloggningsnamn och lösenord - ett automatgenererat lösenord som är |
|||
fult som stryk. |
fult som stryk. |
||
<P> |
|||
<B>ven hr tar det en kvart innan anvndaren kan anvnda cvs ver |
|||
ssh.</B> Dremot kan hen logga in i cvsadministrationssystemet, exempelvis |
|||
fr att byta lsenord eller lgga till SSH-nycklar. |
|||
'''Även här tar det en kvart innan användaren kan använda cvs över |
|||
<H3>Att ta bort anvndare i ett projekt</H3> |
|||
ssh.''' Däremot kan hen logga in i cvsadministrationssystemet, exempelvis |
|||
G in p administrationssidan fr ett projekt och tryck p |
|||
för att byta lösenord eller lägga till SSH-nycklar. |
|||
"Remove"-knappen fr den anvndare du inte vill ha kvar i ditt |
|||
projekt. Anvndaren kan nu inte lngre skriva eller lsa |
|||
repositoryt. Dremot finns anvndaren kvar i systemet, s du kan |
|||
enkelt lgga till henom igen. |
|||
<P> |
|||
<B>OBSERVERA att det gr utmrkt att ta bort sig sjlv, och d blir |
|||
det svrt..</B> |
|||
===Att ta bort användare i ett projekt=== |
|||
Gå in på administrationssidan för ett projekt och tryck på |
|||
Du kan lta andra (ven externa anvndare) bestmma vem som fr lgga |
|||
"Remove"-knappen för den användare du inte vill ha kvar i ditt |
|||
till/ta bort anvndare och huruvida projektet finns tillgngligt |
|||
projekt. Användaren kan nu inte längre skriva eller läsa |
|||
anonymt. G in p administrationssidan fr projektet och tryck p "toggle |
|||
repositoryt. Däremot finns användaren kvar i systemet, så du kan |
|||
administration rights" fr personen. |
|||
enkelt lägga till henom igen. |
|||
'''OBSERVERA att det går utmärkt att ta bort sig själv, och då blir |
|||
<H3>Att tillta/otillta anonym access till projektet</H3> |
|||
det svårt...''' |
|||
P administrationssidan fr projektet finns en toggle-knapp fr att |
|||
bestmma om det ska g att komma t projektet med pserver anonymt. Om |
|||
s r fallet visas den CVSROOT som ska anvndas i s fall. |
|||
<P> |
|||
Med pserver mste man logga in frst - det gr man med ett tomt |
|||
lsenord (enter vid lsenordsfrgan, liksom). |
|||
<P> |
|||
<B>OBSERVERA att det tar en kvart innan projektet r tkomligt |
|||
anonymt</B>. Dremot blir projektet otkomligt s fort du togglar |
|||
tillbaka. Frga inte. |
|||
===Att bestämma vem som får administrera ett projekt=== |
|||
<H3>Att tillta/otillta webaccess till projektet</H3> |
|||
Du kan låta andra (även externa användare) bestämma vem som får lägga |
|||
Liksom du kan bestmma om projektet ska vara anonymt tkombart med |
|||
till/ta bort användare och huruvida projektet finns tillgängligt |
|||
pserver s kan du bestmma om projektet ska vara tkombart med |
|||
anonymt. Gå in på administrationssidan för projektet och tryck på "toggle |
|||
ViewCVS, en web-cvs-frontnda. Det gr du genom att toggla knappen fr |
|||
administration rights" för personen. |
|||
"ViewCVS access". ndringen fr omedelbar effekt. |
|||
===Att tillåta/otillåta anonym access till projektet=== |
|||
<H3>Att lgga till SSH-nycklar</H3> |
|||
På administrationssidan för projektet finns en toggle-knapp för att |
|||
bestämma om det ska gå att komma åt projektet med pserver anonymt. Om |
|||
så är fallet visas den CVSROOT som ska användas i så fall, vilket kommer att vara <tt>:pserver:anonymous@cvs.lysator.liu.se:/cvsroot/<projekt></tt>. |
|||
Med pserver måste man logga in först - det gör man med ett tomt |
|||
Det r rtt tradigt att behva skriva in sitt lsenord var gng man |
|||
lösenord (enter vid lösenordsfrågan, liksom). |
|||
ska utfra ett cvs-kommando. Drfr anvndar man med frdel |
|||
ssh-nycklar, grna i kombination med ssh-agent. Fr att se hur man gr |
|||
'''OBSERVERA att det tar en kvart innan projektet är åtkomligt |
|||
detta p Lysator ls <a href="/local/datorhandbok/ssh.html">hr</a>. |
|||
anonymt'''. Däremot blir projektet oåtkomligt så fort du togglar |
|||
<P> |
|||
tillbaka. Fråga inte. |
|||
Eftersom du varken som vanlig anvndare eller extern dito kommer t |
|||
CVS-burken med ett vanligt skal lggs sdana nycklar till genom att |
|||
===Att tillåta/otillåta webaccess till projektet=== |
|||
vlja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern |
|||
Liksom du kan bestämma om projektet ska vara anonymt åtkombart med |
|||
stdjer enbart ssh v2. |
|||
pserver så kan du bestämma om projektet ska vara åtkombart med |
|||
<P> |
|||
ViewCVS, en web-cvs-frontända. Det gör du genom att toggla knappen för |
|||
Anledningen till att ven Lysatoranvndare mste lgga till sina |
|||
"ViewCVS access". Ändringen får omedelbar effekt. |
|||
nycklar p detta stt r att CVS-servern av skerhetsskl ej monterar |
|||
===Att lägga till SSH-nycklar=== |
|||
Det är rätt tradigt att behöva skriva in sitt lösenord var gång man |
|||
ska utföra ett cvs-kommando. Därför användar man med fördel |
|||
ssh-nycklar, gärna i kombination med ssh-agent. För att se hur man gör |
|||
detta på Lysator läs [[SSH]]. |
|||
Eftersom du varken som vanlig användare eller extern dito kommer åt |
|||
CVS-burken med ett vanligt skal läggs sådana nycklar till genom att |
|||
välja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern |
|||
stödjer enbart ssh v2. |
|||
Anledningen till att även Lysatoranvändare måste lägga till sina |
|||
nycklar på detta sätt är att CVS-servern av säkerhetsskäl ej monterar |
|||
Lysators vanliga NFS-namnrymd. |
Lysators vanliga NFS-namnrymd. |
||
<P> |
|||
'''Även här tar det en kvart innan du kan logga in med din nyckel'''. |
|||
<P> |
|||
Ett annat |
Ett annat sätt att slippa skriva lösenord varje gång är att använda [http://www.lysator.liu.se/~nisse Niels Möllers] |
||
[http://www.lysator.liu.se/~nisse/lsh lsh] i |
|||
"Gateway-mode". Dvs, på din dator exekverar du |
|||
href="http://www.lysator.liu.se/~nisse/lsh">lsh</A> i |
|||
"Gateway-mode". Dvs, p din dator exekverar du |
|||
<pre> |
<pre> |
||
lsh -G -N -l < |
lsh -G -N -l <användarnamn> cvs.lysator.liu.se |
||
</pre> |
</pre> |
||
och skriver in ditt |
och skriver in ditt lösenord. Sen sätter du miljövariabeln CVS_RSH |
||
till "lshg". Klart! |
till "lshg". Klart! |
||
===Logga ut=== |
|||
Hur svårt kan det vara? :-) |
|||
Du blir automatiskt utloggad om du inte gör någonting på en kvart. |
|||
===Att överföra gamla repositories=== |
|||
Jodå, det går. Fast inte utan interaktion av en root. Skapa först projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns för rötterna så ska vi nog kunna ordna den saken. |
|||
===Framtida planer=== |
|||
Umm.. Inga direkta just nu. Kom gärna med förslag! |
|||
===Information om systemet=== |
|||
LysCVS består av en kombination av vanligt förekommande fri programvara samt ett gäng lokalt utvecklade hack. Bland annat används: |
|||
*[http://httpd.apache.org Apache] |
|||
*[http://www.mysql.com MySQL] |
|||
*[http://www.modpython.org mod_python] |
|||
*[http://www.cvshome.org CVS] |
|||
*[http://sourceforge.net/projects/nss-mysql nss_mysql] |
|||
*[http://viewcvs.sourceforge.net/ ViewCVS] |
|||
*[http://www.postfix.org/ Postfix] |
|||
*[http://www.mozilla.org/projects/bugzilla/ Bugzilla] |
|||
Den lokalt utvecklade programvaran är mestadels utvecklad av |
|||
[http://www.lysator.liu.se/~forsberg/ Erik Forsberg] och finns att |
|||
hämta [http://www.lysator.liu.se/~forsberg/hacks/lyscvs här]. |
|||
==Gitmigrering== |
|||
Om du idag har ett projekt som hostas på cvs.lysator.liu.se eller lsvn.lysator.liu.se måste du migrera det. |
|||
=== CVS -> Git === |
|||
Det finns många sätt att konvertera från CVS till Git. Här beskriver jag "git cvsimport" som har en stor fördel: det fungerar även via nätverk, så man behöver inte ha hela CVS-arkivet på en lokalt åtkomlig disk. Det innebär att du kan använda den här metoden på egen hand, utan att behöva be root om hjälp. |
|||
Det finns några problem med den här metoden, som [https://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html#issues listas i manualsidan]. Om arkivet är stort kan det också vara en långsam metod. Det finns andra metoder, t ex [http://cvs2svn.tigris.org/cvs2git.html cvs2git] som kräver direkt tillgång till filerna. Kontakta vid behov root, så kan vi kopiera filerna till din hemkatalog. |
|||
För de flesta arkiv på cvs.lysator.liu.se torde den här metoden fungera utmärkt. |
|||
Börja med att logga in på en av Lysators datorer, t ex faust som har all nödvändig programvara installerad. Checka ut koden. Här använder vi modulen accesslog som ett exempel: |
|||
<pre> |
|||
cvs -d ceder@cvs.lysator.liu.se:/cvsroot/accesslog co accesslog |
|||
cd accesslog |
|||
cvs log | sed -n 's/^date: .* author: \([^;]*\); state: .* lines:.*/\1/p'|uniq|sort|uniq>../accesslog.authors |
|||
</pre> |
|||
Filen accesslog.authors innehåller nu en lista på alla användare som gjort en commit. Editera den, så att den översätter till det format som Git vill ha. Exempel: |
|||
<pre>ceder=Per Cederqvist <ceder@lysator.liu.se> |
|||
inge=Inge Wallin <inge@lysator.liu.se></pre> |
|||
Kör sedan kommandot som gör själva konverteringen till Git: |
|||
<pre>git cvsimport -A ../accesslog.authors -R -k -C ../accesslog.git</pre> |
|||
Om allt gick bra har du nu ett Git-repository i ../accesslog.git. Följ instruktionerna nedan för att publicera det på git.lysator.liu.se. |
|||
=== Subversion -> Git === |
|||
Instruktionerna på http://john.albin.net/git/convert-subversion-to-git ger ett bra resultat. |
|||
Notera att access via http inte fungerar längre, men du kan komma åt ditt projekt med något i stil med: |
|||
<pre>svn co svn+ssh://ceder@lsvn.lysator.liu.se/svnroot/kernelwatch</pre> |
|||
Instruktionerna förutsätter att du använd en standardlayout med trunk, branches och tags. Men de ger en bra grund även om du gjort annorlunda. |
|||
Hur svrt kan det vara? :-) |
|||
<P> |
|||
Du blir automatiskt utloggad om du inte gr ngonting p en kvart. |
|||
=== Publicera Git-arkivet på git.lysator.liu.se === |
|||
<H3>Att verfra gamla repositories</H3> |
|||
Logga in på https://git.lysator.liu.se/ och tryck på "New project"-knappen. Fyll i lämpliga värden. Om projektet är ett samarbetsprojekt kan det vara lämpligt att först skapa en grupp och ange den gruppen som "Namespace". Tryck på "Create project" när du fyllt i alla uppgifter. |
|||
Jod, det gr. Fast inte utan interaktion av en root. Skapa frst projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns fr rtterna s ska vi nog kunna ordna den saken. |
|||
Nu kommer det upp en sida där det under rubriken "Existing Git Repo?" står hur du gör för att publicera ditt repository. Följ instruktionerna: |
|||
<H3>Framtida planer</H3> |
|||
<pre>cd ../accesslog.git |
|||
Umm.. Inga direkta just nu. Kom grna med frslag! |
|||
git remote add origin git@git.lysator.liu.se:ceder/accesslog.git |
|||
git push -u origin master</pre> |
|||
Om ditt projekt innehåller flera grenar och taggar som du vill publicera kan du ersätta den sista raden med: |
|||
<H3>Information om systemet</H3> |
|||
LysCVS bestr av en kombination av vanligt frekommande fri |
|||
programvara samt ett gng lokalt utvecklade hack. Bland annat anvnds: |
|||
<pre>git branch -d origin # git cvsimport skapar en extra gren som heter "origin". Ta bort den -- det är samma sak som master. |
|||
<ul> |
|||
git push -u origin --all # Publicera alla grenar (utom origin som vi just tog bort). |
|||
<li><a href="http://httpd.apache.org">Apache</A> |
|||
git push origin --tags # Publicera alla taggar.</pre> |
|||
<li><a href="http://www.mysql.com">MySQL</A> |
|||
<li><a href="http://www.modpython.org">mod_python</A> |
|||
<li><a href="http://www.cvshome.org">CVS</A> |
|||
<li><a href="http://sourceforge.net/projects/nss-mysql">nss_mysql</A> |
|||
<li><a href="http://viewcvs.sourceforge.net/">ViewCVS</a> |
|||
<li><a href="http://www.postfix.org/">Postfix</a> |
|||
<li><a href="http://www.mozilla.org/projects/bugzilla/">Bugzilla</A> |
|||
[[Kategori:Instruktioner]] |
|||
</ul> |
|||
Den lokalt utvecklade programvaran r mestadels utvecklad av <A HREF="http://www.lysator.liu.se/~forsberg/">Erik Forsberg</A> och |
|||
finns att hmta <a href="http://www.lysator.liu.se/~forsberg/hacks/lyscvs">hr</a> |
|||
<P> |
|||
Hrd och operativsystemsmssigt r burken ifrga fr tillfllet en |
|||
Dell PowerEdge 6100/200 (stalingrad) med 2 st 200 MHz Pentium Pro och 256 MiB |
|||
minne. Inte vrldens snabbaste maskin, men den r stabil, den har bra |
|||
diskutbyggnadsmjligheter och den har en tvillingsyster att plocka |
|||
reservdelar frn. Maskinen kr <a href="http://www.debian.org">Debian |
|||
GNU/Linux</a>. |
|||
<p> |
|||
Maskinen speglar sina diskar med Linux mjukvaru-RAID, och backup tas |
|||
en gng per dygn via Lysators vanliga backuprutiner. |
Nuvarande version från 5 november 2021 kl. 23.57
CVS är ett väldigt användbart verktyg. SVN är nyare. På denna sida beskrivs hur du använder versionshantering hos Lysator.
Det gamla sättet, /lysator/cvsroot
Sedan länge finns en cvsroot som alla Lysiter på ett någorlunda enkelt sätt kan skapa ett repository i. Problemet med den lösningen är att endast Lysiter kan komma åt den, och anonym access är inte möjlig.
Hur man i detalj använder /lysator/cvsroot beskrivs inte på denna oebbsida.
Det nyare sättet, LysCVS och LSVN
Eftersom det verkade finnas ett behov av ett repository där man dels kan ha med icke-Lysiter som utvecklare, och dels tillåta anonym access, utvecklades sommaren 2001 en lösning som tillåter detta.
Sedan dess har även stöd för SVN dykt upp.
Men nu är denna lösning under avveckling. Du rekommenderas att använda Git i stället.
Lösningen går under namnen LysCVS/LSVN och finns att beskåda bland annat i form av http://cvs.lysator.liu.se/.
LysCVS/LSVN har ett oebbaserat administrationsinterface där du själv som vanlig användare kan skapa projekt, lägga till användare till detta och så vidare. Nedan beskrivs hur du gör.
Att skapa nya projekt i LysCVS och LSVN
LysCVS / LSVN bygger på konceptet projekt, som kan vara av typen cvs eller svn. Varje cvs-projekt har en egen CVSROOT och kan ha flera CVS-moduler. Det går bra att ha samma namn på en modul och projektet som modulen tillhör.
Peka din webläsare på https://admin.lysator.liu.se/ och logga in med ditt vanliga Lysatorlogin och -lösen. Klicka på LysCVS/LSVN så får du upp en huvudsida där du kan se vilka projekt du är medlem i och/eller administratör för.
För att skapa ett nytt projekt använder du menyalternativet "New Project" i menyn till vänster. Välj om du vill använda cvs, eller det nyare svn. Skriv vad du vill att ditt projekt ska heta, och tryck på knappen märkt "Create!". Ditt projekt är nu skapat.
OBSERVERA att det tar en stund, i nuläget maximalt en kvart, innan ditt projekt går att använda
Att börja använda det nyligen skapade projektet (cvs)
Enklast är att använda cvs import
. Säg att du nyss har
skapat projektet foo i lysCVS. Vidare har du ett gäng filer som
ska finnas i foo, de existerar i katalogen /home/xyzzy/bar. Du
vill att filerna ska hamna i katalogen gazonk under cvsrooten
för foo I så fall gör du ungefär såhär:
$ cd /home/xyzzy/bar $ export CVS_RSH=ssh $ cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo import gazonk <username> start;
De två sista argumenten är egentligen vendor och tag, så du kan hitta på nått bättre än ditt användarnamn och "start" om du så önskar.
Nu kan du, från en annan katalog, checka ut dina filer med
cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo co gazonk
Att börja använda det nyligen skapade projektet (svn)
Protokollet som stöds heter svn+ssh. OBS: Det sägs vara normalt att behöva ange lösenord flera gånger i rad (ungefär 3) med svn+ssh
Kör
svn co svn+ssh://<username>@lsvn.lysator.liu.se/svnroot/<projektnamn>
för att checka ut ditt projekt. Ta reda på mer om svn med
svn help
eller leta upp dokumentationen på oebben.
Att lägga till nya användare i ett projekt
För att möjliggöra skrivaccess för andra än dig själv lägger du till användare till dina projekt.
Gå till huvudsidan och klicka på länken märkt "administrate" för det projekt du vill lägga till en användare till. Skriv mailadressen för användaren i rutan, och tryck "Add".
Om det är en Lysatoranvändare du lägger till är det inget mer du behöver göra, för då finns redan alla uppgifter i NIS. Om det är en extern (icke-Lysit) du vill lägga till får du fylla i riktigt namn och användarnamn på personen ifråga. OBSERVERA att användarnamnet måste börja på _cvs_. Detta för att skydda Lysators namnrymd. Den externa personen får ett mail med instruktioner om inloggningsnamn och lösenord - ett automatgenererat lösenord som är fult som stryk.
Även här tar det en kvart innan användaren kan använda cvs över ssh. Däremot kan hen logga in i cvsadministrationssystemet, exempelvis för att byta lösenord eller lägga till SSH-nycklar.
Att ta bort användare i ett projekt
Gå in på administrationssidan för ett projekt och tryck på "Remove"-knappen för den användare du inte vill ha kvar i ditt projekt. Användaren kan nu inte längre skriva eller läsa repositoryt. Däremot finns användaren kvar i systemet, så du kan enkelt lägga till henom igen.
OBSERVERA att det går utmärkt att ta bort sig själv, och då blir det svårt...
Att bestämma vem som får administrera ett projekt
Du kan låta andra (även externa användare) bestämma vem som får lägga till/ta bort användare och huruvida projektet finns tillgängligt anonymt. Gå in på administrationssidan för projektet och tryck på "toggle administration rights" för personen.
Att tillåta/otillåta anonym access till projektet
På administrationssidan för projektet finns en toggle-knapp för att bestämma om det ska gå att komma åt projektet med pserver anonymt. Om så är fallet visas den CVSROOT som ska användas i så fall, vilket kommer att vara :pserver:anonymous@cvs.lysator.liu.se:/cvsroot/<projekt>.
Med pserver måste man logga in först - det gör man med ett tomt lösenord (enter vid lösenordsfrågan, liksom).
OBSERVERA att det tar en kvart innan projektet är åtkomligt anonymt. Däremot blir projektet oåtkomligt så fort du togglar tillbaka. Fråga inte.
Att tillåta/otillåta webaccess till projektet
Liksom du kan bestämma om projektet ska vara anonymt åtkombart med pserver så kan du bestämma om projektet ska vara åtkombart med ViewCVS, en web-cvs-frontända. Det gör du genom att toggla knappen för "ViewCVS access". Ändringen får omedelbar effekt.
Att lägga till SSH-nycklar
Det är rätt tradigt att behöva skriva in sitt lösenord var gång man ska utföra ett cvs-kommando. Därför användar man med fördel ssh-nycklar, gärna i kombination med ssh-agent. För att se hur man gör detta på Lysator läs SSH.
Eftersom du varken som vanlig användare eller extern dito kommer åt CVS-burken med ett vanligt skal läggs sådana nycklar till genom att välja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern stödjer enbart ssh v2.
Anledningen till att även Lysatoranvändare måste lägga till sina nycklar på detta sätt är att CVS-servern av säkerhetsskäl ej monterar Lysators vanliga NFS-namnrymd.
Även här tar det en kvart innan du kan logga in med din nyckel.
Ett annat sätt att slippa skriva lösenord varje gång är att använda Niels Möllers lsh i "Gateway-mode". Dvs, på din dator exekverar du
lsh -G -N -l <användarnamn> cvs.lysator.liu.se
och skriver in ditt lösenord. Sen sätter du miljövariabeln CVS_RSH till "lshg". Klart!
Logga ut
Hur svårt kan det vara? :-)
Du blir automatiskt utloggad om du inte gör någonting på en kvart.
Att överföra gamla repositories
Jodå, det går. Fast inte utan interaktion av en root. Skapa först projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns för rötterna så ska vi nog kunna ordna den saken.
Framtida planer
Umm.. Inga direkta just nu. Kom gärna med förslag!
Information om systemet
LysCVS består av en kombination av vanligt förekommande fri programvara samt ett gäng lokalt utvecklade hack. Bland annat används:
Den lokalt utvecklade programvaran är mestadels utvecklad av Erik Forsberg och finns att hämta här.
Gitmigrering
Om du idag har ett projekt som hostas på cvs.lysator.liu.se eller lsvn.lysator.liu.se måste du migrera det.
CVS -> Git
Det finns många sätt att konvertera från CVS till Git. Här beskriver jag "git cvsimport" som har en stor fördel: det fungerar även via nätverk, så man behöver inte ha hela CVS-arkivet på en lokalt åtkomlig disk. Det innebär att du kan använda den här metoden på egen hand, utan att behöva be root om hjälp.
Det finns några problem med den här metoden, som listas i manualsidan. Om arkivet är stort kan det också vara en långsam metod. Det finns andra metoder, t ex cvs2git som kräver direkt tillgång till filerna. Kontakta vid behov root, så kan vi kopiera filerna till din hemkatalog.
För de flesta arkiv på cvs.lysator.liu.se torde den här metoden fungera utmärkt.
Börja med att logga in på en av Lysators datorer, t ex faust som har all nödvändig programvara installerad. Checka ut koden. Här använder vi modulen accesslog som ett exempel:
cvs -d ceder@cvs.lysator.liu.se:/cvsroot/accesslog co accesslog cd accesslog cvs log | sed -n 's/^date: .* author: \([^;]*\); state: .* lines:.*/\1/p'|uniq|sort|uniq>../accesslog.authors
Filen accesslog.authors innehåller nu en lista på alla användare som gjort en commit. Editera den, så att den översätter till det format som Git vill ha. Exempel:
ceder=Per Cederqvist <ceder@lysator.liu.se> inge=Inge Wallin <inge@lysator.liu.se>
Kör sedan kommandot som gör själva konverteringen till Git:
git cvsimport -A ../accesslog.authors -R -k -C ../accesslog.git
Om allt gick bra har du nu ett Git-repository i ../accesslog.git. Följ instruktionerna nedan för att publicera det på git.lysator.liu.se.
Subversion -> Git
Instruktionerna på http://john.albin.net/git/convert-subversion-to-git ger ett bra resultat. Notera att access via http inte fungerar längre, men du kan komma åt ditt projekt med något i stil med:
svn co svn+ssh://ceder@lsvn.lysator.liu.se/svnroot/kernelwatch
Instruktionerna förutsätter att du använd en standardlayout med trunk, branches och tags. Men de ger en bra grund även om du gjort annorlunda.
Publicera Git-arkivet på git.lysator.liu.se
Logga in på https://git.lysator.liu.se/ och tryck på "New project"-knappen. Fyll i lämpliga värden. Om projektet är ett samarbetsprojekt kan det vara lämpligt att först skapa en grupp och ange den gruppen som "Namespace". Tryck på "Create project" när du fyllt i alla uppgifter.
Nu kommer det upp en sida där det under rubriken "Existing Git Repo?" står hur du gör för att publicera ditt repository. Följ instruktionerna:
cd ../accesslog.git git remote add origin git@git.lysator.liu.se:ceder/accesslog.git git push -u origin master
Om ditt projekt innehåller flera grenar och taggar som du vill publicera kan du ersätta den sista raden med:
git branch -d origin # git cvsimport skapar en extra gren som heter "origin". Ta bort den -- det är samma sak som master. git push -u origin --all # Publicera alla grenar (utom origin som vi just tog bort). git push origin --tags # Publicera alla taggar.