Subversion är ett versionshanteringssystem som är öppen källkod. Med Subversion kan du spela in hur källkodsfiler och dokumentation ändras. Det hanterar filer och kataloger ändras över tid. Ett träd av filer placeras i ett centralt förråd. Förrådet fungerar ungefär som en vanlig filserver, med skillnaden att det kommer ihåg alla ändringar som någonsin gjorts i filerna eller katalogerna.
För att komma åt ett Subversion-förråd över HTTP-protokollet måste du installera och konfigurera en webbserver. Apache2 fungerar väl med Subversion. Läs HTTP-underavdelningen i Apache2-avdelningen för att installera och konfigurera Apache2. För att komma åt Subversionförrådet med HTTPS-protokollet måste du installera och konfigurera ett digitalt certifikat till din webbserver. Läs HTTPS-underavdelningen av Apache2-avdelningen för att installera och konfigurera det digitala certifikatet.
För att installera Subversion, kör följande kommando från en terminalprompt:
sudo apt-get install subversion libapache2-svn
Det här steget förutsätter att du har installerat ovan nämnda paket på ditt system. Den här avdelningen förklarar hur du skapar ett Subversionförråd och hur du kommer åt projektet.
Subversionförråd går att komma åt ("check out") på många sätt - på den lokala hårddisken eller över olika nätverksprotokoll. Förrådets plats är dock alltid en URL. Den här tabellen beskriver hur olika URL-scheman går att använda med de tillgängliga åtkomstmetoderna.
Tabell 13.1. Åtkomstmetoder
Schema |
Åtkomstmetod |
---|---|
file:// |
direkt förrådtillgång (på den lokala hårddisken) |
http:// |
Kom åt det via WebDAV-protokollet från en Subversion-medveten Apache2-webbserver |
https:// |
Som http://, men med SSL-kryptering |
svn:// |
Kom åt det via ett specialprotokoll från en svnserve-server |
svn+ssh:// |
Som svn://, men genom en SSH-tunnel |
I den här avdelningen ska vi konfigurera Subversion så att alla dessa åtkomstmetoder fungerar. Här kommer vi bara att gå igenom det grundläggande. För mer avancerad användning, läs svn-boken.
Det här är det enklaste sättet att komma åt Subversion. Det kräver ingen att någon Subversionserver körs. Den här metoden används för att komma åt Subverson från samma dator. Syntaxet på kommandot, som du skriver i en terminalprompt, är som följer:
svn co file:///sökväg/till/projektkatalogen
eller
svn co file://localhost/sökväg/till/projektkatalogen
![]() |
|
Om du inte skriver något värddatornamn är det tre snedstreck (///) - två för protokollet (file, i det här fallet) och ett för början av sökvägen. Om du skriver ett värddatornamn måste du använda två snedstreck (//). |
Förrådsrättigheterna beror på filsystemsrättigheterna. Om användaren har läs- och skrivrättigheter kan han komma åt filer från och lägga upp filer till förrådet.
För att komma åt Subversionförråd via WebDAV-protokollet måste du konfigurera din Apache2-webbserver. Du måste lägga till följande rader till filen /etc/apache2/apache2.conf
:
<Location /svn> DAV svn SVNPath /path/to/repos AuthType Basic AuthName "Your repository name" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
När du har gjort det måste du skapa filen /etc/subversion/passwd
. Den här filen innehåller användarautentiseringsdetaljer. För att lägga till en post, dvs lägga till en användare, kan du köra följande kommando i en terminalprompt:
htpasswd2 /etc/subversion/passwd användarnamn
Det här kommandot kommer be dig skriva in ett lösenord. När du skrivit in lösenordet läggs användaren till. För att komma åt förrådet kör du nu följande kommando:
svn co http://servernamn/svn
![]() |
|
Lösenordet överförs i klartext. Om du är rädd för att någon ska komma över ditt lösenord bör du använda SSL-kryptering. För fler detaljer, läs nästa avdelning. |
Att komma åt ett Subversionförråd via WebDAV-protokollet med SSL-kryptering (https://) är likandant som att komma åt http:// med den enda skillnaden att du måste installera och konfigurera det digitala certifikatet på din Apache2-server.
Du kan installera ett digitalt certifikat som givits ut av en signeringsauktoritet som Verisign. Du kan också installera ett certifikat du signerat själv.
Vi förutsätter att du har installerat och konfigurerat ett digitalt certifikat i din Apache2-webbserver. Läs sedan ovastående avdelning för att komma åt subversionförrådet! Du gör precis likadant för att komma åt det, men protokollen är olika. Du måste använda https:// för att komma åt subversionförrådet.
Så fort subversionförrådet har skapats kan du konfigurera åtkomsträttigheter. Du kan ändra filen /sökväg/till/förråd/conf/svnserve.conf
för att konfigurera åtkomsträttigheter. Till exempel kan du avkommentera följande rader i konfigurationsfilen för att aktivera autentisering:
# [general] # password-db = passwd
När du har avkommenterat ovastående rader kan du upprätthålla en användarlista i passwd-filen. Med andra ord, redigera filen passwd
i samma katalog och lägg till en ny användare. Syntaxet är såhär:
användarnamn = lösenord
Mer information finns i filen.
För att nu komma åt Subversion via specialprotokollet svn://, antingen från samma dator eller från en annan, kan du köra svnserver med kommandot svnserve. Syntaxet är såhär:
$ svnserve -d --foreground -r /sökväg/till/förråd # -d -- demon-läge # --foreground -- kör i förgrunden (användbart för felsökning) # -r -- serverns rotkatalog För fler detaljer om användning, läs: $ svnserve --help
När du kör det här kommandot börjar Subversion lyssna på standardporten (3690). För att komma åt projektförrådet måste du köra följande kommando i en terminalprompt:
svn co svn://värdnamn/projekt projekt --username användarnamn
Servern kommer nu att fråga efter ett lösenord enligt serverkonfigurationen. När du har autentiserat dig kommer den att checka ut koden från subversionförrådet. För att synkronisera projektförrådet med din lokala kopia kan du köra underkommandot update. Syntaxet för kommandot, som du skriver i en terminalpromt, är såhär:
cd projektkatalog ; svn update
För fler detaljer kring hur du använder alla Subversions underkommandon kan du läsa i manualen. För att till exempel lära dig mer om kommandot co (checkout) kör du följande kommando i en terminalprompt:
svn co help
Konfigurationen och serverprocessen är samma som i svn://-metoden. Läs ovastående avdelning för fler detaljer. Det här steget förutsätter att du har följt ovastående steg och startat subversionservern med kommandot svnserve.
Det antas också att ssh-servern körs på den datorn och att den tillåter inkommande anslutningar. För att se till att det här stämmer, försök logga in i den datorn med ssh. Om du kan logga in är allt perfekt. Om du inte kan logga in, åtgärda det innan du fortsätter.
Protokollet svn+ssh:// används för att komma åt subversionförrådet med SSL-kryptering. Dataöverföringen krypteras med den här metoden. För att komma åt projektförrådet (för att till exempel checka ut) måste du använda följande syntax:
svn co svn+ssh://värdnamn/sökväg/till/förråd
![]() |
|
Du måste använda hela sökvägen (/sökväg/till/förråd) för att komma åt subversionförrådet med den här åtkomstmetoden. |
Servern kommer nu, baserat på hur den är konfigurerad, att fråga om ett lösenord. Du måste skriva in lösenordet du använder för att logga in med ssh. När du är autentiserad checkas koden ut från subversionförrådet.