Subversion är ett spårningssystem med öppen källkod. Det förvarar filer i ett centralt arkiv och ger versionskontroll över kataloger eller filer. Som utvecklare kan du hämta projektfiler från ett arkiv, göra ändringar i dem och trycka tillbaka dem igen.

Subversion har också en serverkomponent som du kan använda för att vara värd för dina projekt. Det fungerar ungefär som en vanlig filserver.

Hur man installerar Subversion

Subversion är enkel att installera. Du kan använda lämpligt kommando för att din distro ska börja:

# Debian, Ubuntu
sudo apt Installera subversion apache2 libapache2-mod-svn

# CentOS, Fedora, RHEL
sudo dnf Installera subversion apache2 mod_dav_svn

Observera att detta kommando också installerar webbservern Apache2. Du behöver en webbserver om du vill komma åt Subversion-förrådet via HTTP eller WebDAV. Du kan också använda HTTPS, du behöver bara installera och konfigurera ett digitalt certifikat för att göra det.

När du har kört det här kommandot kan du kontrollera att subversionen är korrekt installerad. Du bör nu kunna köra

instagram viewer
svn kommandot och du kan se den aktuella versionen med hjälp av --version alternativ:

Serverkonfiguration med Subversion

Om installationen gick smidigt kan du nu börja arbeta med förvarskonfigurationen som du kommer att använda med svn. Naturligtvis måste du skapa ett nytt arkiv för detta. Skapa först en mapp i en rotkatalog för att placera ditt arkiv:

sudo mkdir /subversion

Om du behöver komma åt ditt arkiv med WebDAV över HTTP, måste du ge Apache äganderätt till dess katalog. Eftersom Apache använder www-data användare som standard, auktorisera denna användare enligt följande:

sudo chown www-data: www-data /subversion

Du kan nu byta till www-data användare och börja arbeta på ditt förråd. Kommandot du skulle använda för att logga in som www-data användaren är:

sudo su -s /bin/bash www-data

Du är nu en Apache-användare och efter detta steg kan du skapa ditt Subversion-förråd enligt följande:

svnadmin skapa /subversion/myrepo

Du har nu ett Subversion-förråd. För att göra det här förrådet lite säkrare och för att identifiera dess användare är nästa steg att skapa en användare och ställa in ett lösenord för den. För att göra detta, använd följande kommando:

htpasswd -cmb /subversion/passwd myadmin mypass

Enligt detta kommando kommer ditt användarnamn att vara myadmin och ditt lösenord kommer att vara mypass. Du kan ändra dessa värden till vad som är lämpligt för dina omständigheter.

Ditt Subversion-förråd är nu redo att användas. I detta skede kan du avsluta www-data användare genom att använda utgång kommando.

Nu kan du skicka ett önskat projekt eller fil till din repo med kommandot nedan:

sudo svn import <din-projekt-adress> file:///subversion/myrepo -m "Första åtagandet"

Detta kommando använder importera parameter för att skicka allt i din projektmapp till ditt Subversion-förråd. När du gör detta måste du lägga till commit-meddelandet med -m parameter.

Använda åtkomstmetoder i Subversion

Du kanske har märkt att du använder fil:// protokoll för att lägga till ett projekt till ditt arkiv. Detta är bara ett av flera nätverksprotokoll du kan använda för att komma åt ett svn-förråd. Du kan också använda WebDAV-protokollet över HTTP eller HTTPS, eller subversions anpassade svn protokoll.

Direkt åtkomst till arkivet

Som du har sett kan du använda fil:// protokoll för att komma åt ett lokalt arkiv. Så här kan du checka ut en lokal repo till din nuvarande katalog:

svn co-fil:///subversion/myrepo

När du checkar ut repet visar svn en lista över filerna som den innehåller:

Åtkomst med WebDAV

För att integrera ditt Subversion-förråd med Apache måste du konfigurera några inställningar.

För det första steget, aktivera dav, dav_svn, och dav_fs moduler med följande kommandon:

sudo a2enmod dav dav_fs dav_svn

Efter att ha aktiverat de nödvändiga modulerna kan du nu redigera /etc/apache2/mods-enabled/dav_svn.conf fil. Skapa filen om den inte redan finns och ändra dess innehåll enligt följande:

<Plats /subversion>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Behöva giltig användare
</Location>

De AuthUserFile inställningen refererar till filen som du skapade tidigare med htpasswd. Om du lägger till det här kommer alla användare som namnges i filen att ge arkivåtkomst, förutsatt att de autentiseras med ett giltigt lösenord.

När du har skapat och sparat den här filen, starta om Apache2-tjänsten med följande kommando:

sudosystemctlomstartapache2.service

Nu, när du öppnar en webbläsare och går till http://localhost/subversion/, kommer du att se innehållet i ditt arkiv. När du går till den här adressen kommer den att fråga efter ditt användarnamn och lösenord:

Logga in med användarnamnet (t.ex. myadmin) och lösenord (mypass) som du ställt in tidigare. Du kan komma åt ditt Subversion-förråd med WebDAV efter att ha angett användarnamnet och lösenordet:

Åtkomst med SSL och WebDAV

De https:// protokollet har nästan samma konfiguration som http:// protokoll, med bara några få viktiga skillnader. För att ge ett exempel .conf fil du behöver använda under konfigurationen är annorlunda. Du måste också installera ett digitalt certifikat. För som ni vet är detta arbetslogiken för SSL-krypteringsmetod.

Du kan skapa ett digitalt certifikat själv, eller så kan du installera en som utfärdats av en behörig myndighet. Förutsatt att du har installerat ett digitalt certifikat är vad du behöver göra enkelt.

Skillnaden i detta steg är de ändringar du kommer att göra i konfigurationsfilen. Nedan är ett exempel på en konfigurationsfil för SSL- och WebDAV-användning:

<Plats /subversion>
DAV på
SSLKräverSSL
alternativ Ingen
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Behöva giltig användare
</Location>

Som du kan se, skillnaden mellan https:// och http:// protokoll är inte så mycket när det gäller ändringar i konfigurationsfilen. Efter dessa ändringar måste du starta om apache2 service. Springa systemctl starta om apache2.service att göra så.

Varför använda Subversion?

Som versionsspårare kommer Subversion ihåg alla ändringar som görs i filer och kataloger. Det låter dig komma åt gamla versioner av programvara eller dokument du arbetar med och hitta skillnader. Detta gör det lättare att hantera projekt, särskilt om ditt utvecklingsteam är stort eller distribuerat.

Det finns många versionskontrollsystem för Linux förutom Subversion, som du kanske vill överväga.