CVS och SVN

Från Lysators datorhandbok, den ultimata referensen.
Version från den 3 juli 2007 kl. 18.16 av Creideiki (diskussion | bidrag) (Hur en anonym CVSROOT ser ut.)
Hoppa till navigering Hoppa till sök

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.

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&gt 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 [Möllers] [http://www.lysator.liu.se/~nisse/lsh 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.


Hård och operativsystemsmässigt är burken ifråga för tillfället en Dell PowerEdge 6100/200 (stalingrad) med 2 st 200 MHz Pentium Pro och 256 MiB minne. Inte världens snabbaste maskin, men den är stabil, den har bra diskutbyggnadsmöjligheter och den har en tvillingsyster att plocka reservdelar från. Maskinen kör Debian GNU/Linux.

Maskinen speglar sina diskar med Linux mjukvaru-RAID, och backup tas en gång per dygn via Lysators vanliga backuprutiner.