Subversion

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.

Installation

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

Serverkonfiguration

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.

Skapa Subversionförrådet

Subversionförrådet kan du skapa med följande kommando, som du skriver i en terminalprompt:

svnadmin create /sökväg/till/projektkatalogen

Åtkomstmetoder

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.

Direkt förrådsåtkomst (file://)

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

[Notera]

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.

Tillgång via WebDAV-protokollet (http://)

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
            
          
[Varning]

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.

Tillgång via WebDAV-protokolet via SSL-kryptering (https://)

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.

Tillgång via ett specialprotokoll (svn://)

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
            
          

Tillgång via specialprotokoll med SSL-kryptering (svn+ssh://)

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

[Notera]

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.