Subversion er et open source-versionssporingssystem. Det opbevarer filer i et centralt lager og giver versionskontrol over mapper eller filer. Som udvikler kan du trække projektfiler fra et lager, foretage ændringer i dem og skubbe dem tilbage igen.
Subversion har også en serverkomponent, som du kan bruge til at hoste dine projekter. Det fungerer meget som en almindelig filserver.
Sådan installeres Subversion
Subversion er ligetil at installere. Du kan bruge den passende kommando til at din distro begynder:
# Debian, Ubuntu
sudo apt installere subversion apache2 libapache2-mod-svn
# CentOS, Fedora, RHEL
sudo dnf installere subversion apache2 mod_dav_svn
Bemærk, at denne kommando også installerer Apache2-webserveren. Du skal bruge en webserver, hvis du vil have adgang til Subversion-lageret via HTTP eller WebDAV. Du kan også bruge HTTPS, du skal blot installere og konfigurere et digitalt certifikat for at gøre det.
Når du har kørt denne kommando, kan du kontrollere, at subversion er installeret korrekt. Du skulle nu være i stand til at køre
svn kommandoen, og du kan se den aktuelle version ved hjælp af --version mulighed:Serverkonfiguration med Subversion
Hvis installationen gik glat, kan du nu begynde at arbejde på lagerkonfigurationen, som du vil bruge med svn. Selvfølgelig skal du oprette et nyt lager til dette. Først skal du oprette en mappe i en rodmappe for at placere dit lager:
sudo mkdir /subversion
Hvis du har brug for at få adgang til dit lager ved hjælp af WebDAV over HTTP, skal du give Apache ejerskab af dets bibliotek. Siden Apache bruger www-data bruger som standard, godkend denne bruger som følger:
sudo chown www-data: www-data /subversion
Du kan nu skifte til www-data bruger og begynd at arbejde på dit lager. Kommandoen du ville bruge til at logge på som www-data bruger er:
sudo su -s /bin/bash www-data
Du er nu en Apache-bruger, og efter dette trin kan du oprette dit Subversion-depot som følger:
svnadmin skab /subversion/myrepo
Du har nu et Subversion-depot. For at gøre dette lager lidt mere sikkert og for at identificere dets brugere, er næste trin at oprette en bruger og indstille en adgangskode til den. For at gøre dette skal du bruge følgende kommando:
htpasswd -cmb /subversion/passwd myadmin mypass
Ifølge denne kommando vil dit brugernavn være minadmin og din adgangskode bliver mypass. Du kan ændre disse værdier til det, der passer til dine forhold.
Dit Subversion-lager er nu klar til brug. På dette trin kan du afslutte www-data bruger ved at bruge Afslut kommando.
Nu kan du sende et ønsket projekt eller en fil til din repo ved hjælp af kommandoen nedenfor:
sudo svn import <din-projekt-adresse> file:///subversion/myrepo -m "Første forpligtelse"
Denne kommando bruger importere parameter for at skubbe alt i din projektmappe til dit Subversion-lager. Mens du gør dette, skal du tilføje commit-meddelelsen med -m parameter.
Brug af adgangsmetoder i Subversion
Du har måske bemærket, at du bruger fil:// protokol for at tilføje et projekt til dit lager. Dette er blot en af flere netværksprotokoller, du kan bruge til at få adgang til et svn-lager. Du kan også bruge WebDAV-protokollen over HTTP eller HTTPS, eller subversions brugerdefinerede svn protokol.
Direkte adgang til depotet
Som du har set, kan du bruge fil:// protokol for at få adgang til et lokalt lager. Sådan kan du tjekke en lokal repo til din nuværende mappe:
svn co fil:///subversion/myrepo
Når du tjekker repoen, viser svn en liste over de filer, den indeholder:
Adgang ved hjælp af WebDAV
For at integrere dit Subversion-lager med Apache, skal du konfigurere nogle indstillinger.
For det første trin skal du aktivere dav, dav_svn, og dav_fs moduler ved hjælp af følgende kommandoer:
sudo a2enmod dav dav_fs dav_svn
Efter aktivering af de nødvendige moduler kan du nu redigere /etc/apache2/mods-enabled/dav_svn.conf fil. Opret filen, hvis den ikke allerede eksisterer, og skift dens indhold som følger:
<Placering / subversion>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Kræve gyldig bruger
</Location>
Det AuthUserFile indstilling refererer til den fil, du oprettede tidligere ved hjælp af htpasswd. Tilføjelse af det her vil give lageradgang til alle brugere, der er navngivet i filen, forudsat at de godkendes med en gyldig adgangskode.
Når du har oprettet og gemt denne fil, skal du genstarte Apache2-tjenesten med følgende kommando:
sudosystemctlgenstartapache2.service
Nu, når du åbner en webbrowser og går til http://localhost/subversion/, vil du se indholdet af dit lager. Når du går til denne adresse, vil den bede om dit brugernavn og adgangskode:
Log ind med brugernavnet (f. minadmin) og adgangskode (mypass), som du har konfigureret tidligere. Du kan få adgang til dit Subversion-lager ved hjælp af WebDAV efter at have indtastet brugernavn og adgangskode:
Adgang med SSL og WebDAV
Det https:// protokollen har næsten den samme konfiguration som http:// protokol, med blot nogle få vigtige forskelle. For at give et eksempel .conf fil, du skal bruge under konfigurationen, er anderledes. Du skal også installere et digitalt certifikat. For som du ved, er dette arbejdslogikken i SSL-krypteringsmetode.
Du kan oprette et digitalt certifikat selv, eller du kan installere en udstedt af en kompetent myndighed. Hvis du antager, at du har installeret et digitalt certifikat, er det enkelt, du skal gøre.
Forskellen i dette trin er de ændringer, du vil foretage i konfigurationsfilen. Nedenfor er et eksempel på en konfigurationsfil til SSL- og WebDAV-brug:
<Placering / subversion>
DAV til
SSLKræverSSL
Muligheder Ingen
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Kræve gyldig bruger
</Location>
Som du kan se, er forskellen mellem https:// og http:// protokoller er ikke så meget med hensyn til ændringer i konfigurationsfilen. Efter disse ændringer skal du genstarte apache2 service. Løb systemctl genstart apache2.service for at gøre det.
Hvorfor bruge Subversion?
Som version tracker husker Subversion hver ændring, der er foretaget i filer og mapper. Det giver dig adgang til gamle versioner af software eller dokumenter, du arbejder med, og finde deres forskelle. Dette gør det nemmere at styre projekter, især hvis dit udviklingsteam er stort eller distribueret.
Der er mange versionskontrolsystemer til Linux bortset fra Subversion, som du måske vil overveje.