Subversion on avatud lähtekoodiga versioonijälgimissüsteem. See hoiab faile keskses hoidlas ja pakub kataloogide või failide versioonikontrolli. Arendajana saate projektifaile hoidlast tõmmata, neis muudatusi teha ja uuesti tagasi lükata.

Subversionil on ka serverikomponent, mida saate oma projektide majutamiseks kasutada. See töötab sarnaselt tavalise failiserveriga.

Subversioni installimine

Subversioni on lihtne installida. Distro alustamiseks võite kasutada sobivat käsku:

# Debian, Ubuntu
sudo apt installida õõnestus apache2 libapache2-mod-svn

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

Pange tähele, et ka see käsk installib Apache2 veebiserveri. Kui soovite pääseda Subversioni hoidlasse HTTP või WebDAV kaudu, on teil vaja veebiserverit. Võite kasutada ka HTTPS-i, selleks peate lihtsalt installima ja konfigureerima digitaalse sertifikaadi.

Kui olete selle käsu käivitanud, saate kontrollida, kas alamversioon on õigesti installitud. Nüüd peaksite saama käivitada svn käsk ja näete praegust versiooni kasutades -- versioon valik:

Serveri seadistamine Subversioniga

Kui installimine läks sujuvalt, saate nüüd hakata töötama hoidla konfiguratsiooni kallal, mida koos kasutate svn. Loomulikult peate selle jaoks looma uue hoidla. Esmalt looge hoidla paigutamiseks juurkataloogis kaust:

sudo mkdir /subversion

Kui teil on vaja oma hoidlale juurde pääseda WebDAV-i kaudu HTTP kaudu, peate andma Apache'ile selle kataloogi omandiõiguse. Kuna Apache kasutab www-andmed vaikimisi kasutaja, volitage see kasutaja järgmiselt:

sudo chown www-data: www-data /subversion

Nüüd saate lülituda www-andmed kasutaja ja alustage oma hoidla kallal töötamist. Käsk, mida kasutaksite sisselogimiseks kui www-andmed kasutaja on:

sudo su -s /bin/bash www-data

Olete nüüd Apache kasutaja ja pärast seda sammu saate luua Subversioni hoidla järgmiselt.

svnadmin luua /subversion/myrepo

Sul on nüüd Subversioni hoidla. Selle hoidla pisut turvalisemaks muutmiseks ja kasutajate tuvastamiseks tuleb järgmise sammuna luua kasutaja ja määrata sellele parool. Selleks kasutage järgmist käsku:

htpasswd -cmb /subversion/passwd myadmin mypass

Selle käsu kohaselt on teie kasutajanimi minu administraator ja teie parool on mypass. Saate neid väärtusi muuta teie olukorrale sobivaks.

Sinu Subversioni hoidla on nüüd kasutamiseks valmis. Selles etapis saate väljuda www-andmed kasutaja kasutades väljuda käsk.

Nüüd saate soovitud projekti või faili oma reposse saata, kasutades allolevat käsku:

sudo svn import <teie projekti aadress> file:///subversion/myrepo -m "Esimene kohustus"

See käsk kasutab importida parameeter, et lükata kõik projekti kaustas olev Subversioni hoidlasse. Seda tehes peate lisama kinnitussõnumi koos -m parameeter.

Juurdepääsumeetodite kasutamine Subversionis

Võib-olla olete märganud, et kasutate file:// protokoll projekti hoidlasse lisamiseks. See on vaid üks mitmest võrguprotokollist, mida saate kasutada svn-i hoidlale juurdepääsuks. Saate kasutada ka WebDAV-protokolli HTTP või HTTPS-i või subversionide kohandatud kaudu svn protokolli.

Otsene juurdepääs hoidlale

Nagu olete näinud, saate kasutada file:// protokoll kohalikule hoidlale juurdepääsuks. Siit saate teada, kuidas saate oma praegusesse kataloogi kohalikku repot vaadata:

svn kaasfail:///subversion/myrepo

Repo kontrollimisel kuvab svn selles sisalduvate failide loendi:

Juurdepääs WebDAV-i abil

Subversioni hoidla integreerimiseks Apache'iga peate konfigureerima mõned sätted.

Esimeseks sammuks aktiveerige dav, dav_svnja dav_fs moodulid, kasutades järgmisi käske:

sudo a2enmod dav dav_fs dav_svn

Pärast vajalike moodulite aktiveerimist saate nüüd redigeerida /etc/apache2/mods-enabled/dav_svn.conf faili. Looge fail, kui seda veel pole, ja muutke selle sisu järgmiselt.

<Asukoht/allversioon>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversioni hoidla"
AuthUserFile /subversion/passwd
Nõua kehtiv kasutaja
</Location>

The AuthUserFile säte viitab failile, mille olete varem kasutades loonud htpasswd. Selle siia lisamine annab kõigile failis nimetatud kasutajatele juurdepääsu hoidlale, eeldusel, et nad autentivad end kehtiva parooliga.

Kui olete selle faili loonud ja salvestanud, taaskäivitage Apache2 teenus järgmise käsuga:

sudosystemctlTaaskäivitaapache2.teenus

Nüüd, kui avate veebibrauseri ja minge aadressile http://localhost/subversion/, näete oma hoidla sisu. Kui lähete sellele aadressile, küsib see teie kasutajanime ja parooli:

Logi sisse kasutajanimega (nt. minu administraator) ja parool (mypass), mille olete varem seadistanud. Pärast kasutajanime ja parooli sisestamist pääsete oma Subversioni hoidlasse WebDAV-i abil juurde:

Juurdepääs SSL-i ja WebDAV-iga

The https:// protokollil on peaaegu sama konfiguratsioon kui http:// protokolli, vaid mõne olulise erinevusega. Kui tuua näide, .conf konfigureerimisel kasutatav fail on erinev. Samuti peate installima digitaalse sertifikaadi. Sest nagu teate, on see tööloogika SSL-krüptimise meetod.

Sa saad luua digitaalne sertifikaat ise või võite installida pädeva asutuse väljastatud seadme. Eeldades, et olete digitaalse sertifikaadi installinud, on see lihtne.

Selle sammu erinevus seisneb konfiguratsioonifailis tehtavates muudatustes. Allpool on SSL-i ja WebDAV-i kasutamise näidiskonfiguratsioonifail:

<Asukoht/allversioon>
DAV sees
SSLR nõuab SSL-i
Valikud Mitte ühtegi
AuthType Basic
AuthName "Subversioni hoidla"
AuthUserFile /subversion/passwd
Nõua kehtiv kasutaja
</Location>

Nagu näete, on erinevus https:// ja http:// protokollid ei ole konfiguratsioonifaili muudatuste osas nii palju. Pärast neid muudatusi peate taaskäivitama apache2 teenust. Jookse systemctl taaskäivitage apache2.service seda teha.

Miks kasutada Subversionit?

Versioonijälgijana jätab Subversion meelde kõik failides ja kataloogides tehtud muudatused. See võimaldab teil pääseda juurde tarkvara või dokumentide vanadele versioonidele, millega töötate, ja leida nende erinevusi. See muudab projektide haldamise lihtsamaks, eriti kui teie arendusmeeskond on suur või hajutatud.

Peale Subversioni on Linuxi jaoks palju versioonikontrollisüsteeme, mida võiksite kaaluda.