Subversion er et sporingssystem med åpen kildekode. Den holder filer i et sentralt depot og gir versjonskontroll over kataloger eller filer. Som utvikler kan du hente prosjektfiler fra et depot, gjøre endringer i dem og skyve dem tilbake igjen.
Subversion har også en serverkomponent som du kan bruke til å være vert for prosjektene dine. Det fungerer omtrent som en vanlig filserver.
Hvordan installere Subversion
Subversion er enkel å installere. Du kan bruke den riktige kommandoen for å starte distroen din:
# Debian, Ubuntu
sudo apt installere subversion apache2 libapache2-mod-svn
# CentOS, Fedora, RHEL
sudo dnf installere subversion apache2 mod_dav_svn
Merk at denne kommandoen også installerer Apache2-nettserveren. Du trenger en webserver hvis du vil ha tilgang til Subversion-depotet via HTTP eller WebDAV. Du kan også bruke HTTPS, du trenger bare å installere og konfigurere et digitalt sertifikat for å gjøre det.
Når du har kjørt denne kommandoen, kan du sjekke at subversionen er riktig installert. Du skal nå kunne kjøre
svn kommandoen og du kan se gjeldende versjon ved å bruke --versjon alternativ:Serverkonfigurasjon med Subversion
Hvis installasjonen gikk problemfritt, kan du nå begynne å jobbe med depotkonfigurasjonen som du vil bruke med svn. Selvfølgelig må du opprette et nytt depot for dette. Først oppretter du en mappe i en rotkatalog for å plassere depotet ditt:
sudo mkdir /subversion
Hvis du trenger å få tilgang til depotet ditt ved å bruke WebDAV over HTTP, må du gi Apache eierskap til katalogen. Siden Apache bruker www-data bruker som standard, autoriser denne brukeren som følger:
sudo chown www-data: www-data /subversion
Du kan nå bytte til www-data bruker og begynn å jobbe med depotet ditt. Kommandoen du vil bruke for å logge på som www-data bruker er:
sudo su -s /bin/bash www-data
Du er nå en Apache-bruker, og etter dette trinnet kan du opprette Subversion-depotet ditt som følger:
svnadmin skape /subversion/myrepo
Du har nå et Subversion-depot. For å gjøre dette depotet litt sikrere og identifisere brukerne, er neste trinn å opprette en bruker og angi et passord for den. For å gjøre dette, bruk følgende kommando:
htpasswd -cmb /subversion/passwd myadmin mypass
I henhold til denne kommandoen vil brukernavnet ditt være minadmin og passordet ditt vil være mypass. Du kan endre disse verdiene til det som passer for dine omstendigheter.
Subversion-depotet ditt er nå klart til bruk. På dette stadiet kan du avslutte www-data bruker ved å bruke exit kommando.
Nå kan du sende et ønsket prosjekt eller fil til repoen din ved å bruke kommandoen nedenfor:
sudo svn import <din-prosjektadressen> file:///subversion/myrepo -m "Første forpliktelse"
Denne kommandoen bruker import parameter for å skyve alt i prosjektmappen til Subversion-depotet. Mens du gjør dette, må du legge til commit-meldingen med -m parameter.
Bruke tilgangsmetoder i Subversion
Du har kanskje lagt merke til at du bruker fil:// protokoll for å legge til et prosjekt til depotet ditt. Dette er bare en av flere nettverksprotokoller du kan bruke for å få tilgang til et svn-lager. Du kan også bruke WebDAV-protokollen over HTTP eller HTTPS, eller subversions egendefinerte svn protokoll.
Direkte tilgang til depotet
Som du har sett, kan du bruke fil:// protokoll for å få tilgang til et lokalt depot. Slik kan du sjekke ut en lokal repo til din nåværende katalog:
svn co-fil:///subversion/myrepo
Når du sjekker ut repoen, viser svn en liste over filene den inneholder:
Tilgang ved hjelp av WebDAV
For å integrere Subversion-depotet ditt med Apache, må du konfigurere noen innstillinger.
For det første trinnet, aktiver dav, dav_svn, og dav_fs moduler ved å bruke følgende kommandoer:
sudo a2enmod dav dav_fs dav_svn
Etter å ha aktivert de nødvendige modulene, kan du nå redigere /etc/apache2/mods-enabled/dav_svn.conf fil. Opprett filen hvis den ikke allerede eksisterer, og endre innholdet som følger:
<Plassering / subversion>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Krev gyldig bruker
</Location>
De AuthUserFile innstilling refererer til filen du opprettet tidligere med htpasswd. Hvis du legger det til her, vil alle brukere som er navngitt i filen gis tilgang til depotet, forutsatt at de autentiserer med et gyldig passord.
Når du har opprettet og lagret denne filen, start Apache2-tjenesten på nytt med følgende kommando:
sudosystemctlomstartapache2.service
Nå, når du åpner en nettleser og går til http://localhost/subversion/, vil du se innholdet i depotet ditt. Når du går til denne adressen, vil den be om brukernavn og passord:
Logg på med brukernavnet (f. minadmin) og passord (mypass) som du satte opp tidligere. Du kan få tilgang til Subversion-depotet ditt ved å bruke WebDAV etter å ha skrevet inn brukernavn og passord:
Tilgang med SSL og WebDAV
De https:// protokollen har nesten samme konfigurasjon som http:// protokoll, med bare noen få viktige forskjeller. For å gi et eksempel .conf filen du må bruke under konfigurasjonen er annerledes. Du må også installere et digitalt sertifikat. For som du vet, er dette arbeidslogikken til SSL-krypteringsmetode.
Du kan opprette et digitalt sertifikat selv, eller du kan installere en utstedt av en kompetent myndighet. Forutsatt at du har installert et digitalt sertifikat, er det enkelt å gjøre det.
Forskjellen i dette trinnet er endringene du vil gjøre i konfigurasjonsfilen. Nedenfor er et eksempel på konfigurasjonsfil for SSL- og WebDAV-bruk:
<Plassering / subversion>
DAV på
SSLRequireSSL
Alternativer Ingen
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Krev gyldig bruker
</Location>
Som du kan se, forskjellen mellom https:// og http:// protokoller er ikke så mye når det gjelder endringer i konfigurasjonsfilen. Etter disse endringene må du starte på nytt apache2 service. Løpe systemctl restart apache2.service å gjøre slik.
Hvorfor bruke Subversion?
Som en versjonssporing husker Subversion hver endring som er gjort i filer og kataloger. Den lar deg få tilgang til gamle versjoner av programvare eller dokumenter du jobber med og finne forskjellene deres. Dette gjør det enklere å administrere prosjekter, spesielt hvis utviklingsteamet ditt er stort eller distribuert.
Det er mange versjonskontrollsystemer for Linux bortsett fra Subversion, som du kanskje vil vurdere.