Subversion je sustav za praćenje verzija otvorenog koda. Čuva datoteke u središnjem repozitoriju i omogućuje kontrolu verzija nad direktorijima ili datotekama. Kao razvojni programer, možete povući projektne datoteke iz repozitorija, unijeti izmjene u njih i ponovno ih vratiti.

Subversion također ima komponentu poslužitelja koju možete koristiti za hostiranje svojih projekata. Radi poput običnog poslužitelja datoteka.

Kako instalirati Subversion

Subversion se jednostavno instalira. Za početak distribucije možete upotrijebiti odgovarajuću naredbu:

# Debian, Ubuntu
sudo apt instalirati subverzija apache2 libapache2-mod-svn

# CentOS, Fedora, RHEL
sudo dnf instalirati subverzija apache2 mod_dav_svn

Imajte na umu da i ova naredba instalira web poslužitelj Apache2. Trebat će vam web poslužitelj ako želite pristupiti Subverzionom repozitoriju putem HTTP-a ili WebDAV-a. Također možete koristiti HTTPS, samo ćete za to morati instalirati i konfigurirati digitalni certifikat.

Nakon što pokrenete ovu naredbu, možete provjeriti je li subverzija ispravno instalirana. Sada biste trebali moći pokrenuti

svn naredbu i možete vidjeti trenutnu verziju pomoću --verzija opcija:

Konfiguracija poslužitelja sa Subverzijom

Ako je instalacija prošla glatko, sada možete početi raditi na konfiguraciji repozitorija s kojom ćete se koristiti svn. Naravno, za to ćete morati stvoriti novo spremište. Najprije stvorite mapu u korijenskom direktoriju da biste smjestili svoje spremište:

sudo mkdir /subverzija

Ako trebate pristupiti svom repozitoriju koristeći WebDAV preko HTTP-a, morat ćete dati Apacheu vlasništvo nad njegovim direktorijem. Budući da Apache koristi www-podaci korisnik prema zadanim postavkama, autorizirajte ovog korisnika na sljedeći način:

sudo chown www-podaci: www-podaci /subverzija

Sada se možete prebaciti na www-podaci korisnika i počnite raditi na svom repozitoriju. Naredba koju biste koristili za prijavu kao www-podaci korisnik je:

sudo su -s /bin/bash www-podaci

Sada ste Apache korisnik i nakon ovog koraka, možete kreirati svoje Subversion repozitorij na sljedeći način:

svnadmin stvoriti /subversion/myrepo

Sada imate Subversion repozitorij. Da bi ovo spremište bilo malo sigurnije i da bi se identificirali njegovi korisnici, sljedeći korak je kreiranje korisnika i postavljanje lozinke za njega. Da biste to učinili, koristite sljedeću naredbu:

htpasswd -cmb /subversion/passwd myadmin mypass

Prema ovoj naredbi, vaše korisničko ime će biti moj admin a vaša će lozinka biti moja propusnica. Ove vrijednosti možete promijeniti u ono što odgovara vašim okolnostima.

Vaše Subverziono spremište je sada spremno za korištenje. U ovoj fazi možete izaći iz www-podaci korisnik pomoću Izlaz naredba.

Sada možete poslati željeni projekt ili datoteku u svoj repo koristeći naredbu ispod:

sudo svn import <adresa-vašeg-projekta> datoteka:///subverzija/myrepo -m "Prvo počini"

Ova naredba koristi uvoz parametar za guranje svega u mapi vašeg projekta u vaše Subverziono spremište. Dok to radite, morate dodati poruku predaje s -m parametar.

Korištenje metoda pristupa u Subverziji

Možda ste primijetili da koristite datoteka:// protokol za dodavanje projekta u vaše spremište. Ovo je samo jedan od nekoliko mrežnih protokola koje možete koristiti za pristup svn repozitoriju. Također možete koristiti WebDAV protokol preko HTTP-a ili HTTPS-a, ili Subversion-in običaj svn protokol.

Izravan pristup repozitoriju

Kao što ste vidjeli, možete koristiti datoteka:// protokol za pristup lokalnom spremištu. Evo kako možete provjeriti lokalni repo u svom trenutnom imeniku:

svn co datoteka:///subversion/myrepo

Kada provjerite repo, svn prikazuje popis datoteka koje sadrži:

Pristup korištenjem WebDAV-a

Za integraciju vašeg Subversion repozitorija s Apacheom, morat ćete konfigurirati neke postavke.

Za prvi korak, aktivirajte dav, dav_svn, i dav_fs module pomoću sljedećih naredbi:

sudo a2enmod dav dav_fs dav_svn

Nakon aktiviranja potrebnih modula, sada možete urediti /etc/apache2/mods-enabled/dav_svn.conf datoteka. Stvorite datoteku ako već ne postoji i promijenite njezin sadržaj na sljedeći način:

<Lokacija/subverzija>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subverzijsko spremište"
AuthUserFile /subversion/passwd
Zahtijevati važeći-korisnik
</Location>

The AuthUserFile postavka se odnosi na datoteku koju ste prethodno stvorili pomoću htpasswd. Ako ga dodate ovdje, omogućit ćete pristup repozitoriju svim korisnicima navedenim u datoteci, pod uvjetom da se autentificiraju valjanom lozinkom.

Nakon što stvorite i spremite ovu datoteku, ponovno pokrenite uslugu Apache2 sljedećom naredbom:

sudosystemctlponovno pokrenutiapache2.servis

Sada, kada otvorite web preglednik i odete na http://localhost/subversion/, vidjet ćete sadržaj svog spremišta. Kada odete na ovu adresu, tražit će vaše korisničko ime i lozinku:

Prijavite se korisničkim imenom (npr. moj admin) i lozinka (moja propusnica) koje ste ranije postavili. Možete pristupiti svom Subversion repozitoriju koristeći WebDAV nakon unosa korisničkog imena i lozinke:

Pristup pomoću SSL-a i WebDAV-a

The https:// protokol ima gotovo istu konfiguraciju kao http:// protokol, uz samo nekoliko važnih razlika. Da dam primjer, .konf datoteka koju trebate koristiti tijekom konfiguracije je drugačija. Također morate instalirati digitalni certifikat. Jer kao što znate, ovo je radna logika SSL metoda enkripcije.

Možeš izraditi digitalni certifikat sami ili možete ugraditi onaj koji izdaje nadležno tijelo. Pod pretpostavkom da ste instalirali digitalni certifikat, ono što trebate učiniti je jednostavno.

Razlika u ovom koraku su promjene koje ćete napraviti u konfiguracijskoj datoteci. Ispod je primjer konfiguracijske datoteke za korištenje SSL-a i WebDAV-a:

<Lokacija/subverzija>
DAV uključen
SSLRequireSSL
Mogućnosti Nijedan
AuthType Basic
AuthName "Subverzijsko spremište"
AuthUserFile /subversion/passwd
Zahtijevati važeći-korisnik
</Location>

Kao što vidite, razlika između https:// i http:// protokola nije toliko u smislu promjena u konfiguracijskoj datoteci. Nakon ovih promjena morat ćete ponovno pokrenuti apache2 servis. Trčanje systemctl ponovno pokrenite apache2.service učiniti tako.

Zašto koristiti Subverziju?

Kao alat za praćenje verzija, Subversion pamti svaku promjenu napravljenu na datotekama i direktorijima. Omogućuje vam pristup starim verzijama softvera ili dokumenata s kojima radite i pronalaženje njihovih razlika. To olakšava upravljanje projektima, osobito ako je vaš razvojni tim velik ili distribuiran.

Postoje mnogi sustavi kontrole verzija za Linux osim Subversiona, koje biste trebali razmotriti.