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

instagram viewer
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.