Subversion

Subversion je systém s otvoreným zdrojovým kódom na správu verzií. Pomocou Subversion, môžete zaznamenať históriu zdrojových súborov a dokumentov. Spravuje súbory a priečinky v čase. Strom súborov je umiestnený v centrálnom úložisku. Úložisko je veľmi podobné súborovému serveru s tým rozdielom, že si pamätá každú zmenu vykonanú v súboroch a priečinkoch.

Subversion: stručný návod

Inštalácia

Aby sme mohli pristupovať k úložisku systému Subversion cez HTTP protokol, musíme nastaviť webový server. Správnu funkčnosť so systémom Subversion vykazuje webový server Apache2. Návod, ako nainštalovať webový server Apache2, nájdeme v časti HTTPD - webový server Apache2. Aby sme mohli do úložiska systému Subversion pristupovať cez HTTPS protokol, musíme nainštalovať a nastaviť digitálny certifikát pre webový server Apache 2. Návod na nastavenie digitálneho certifikátu nájdeme v časti Nastavenie HTTPS.

Subversion nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install subversion libapache2-svn

Konfigurácia servera

V tomto kroku budeme predpokladať, že máme nainštalované vyššie spomínané balíky. V tejto časti si povieme, ako môžeme vytvoriť úložisko systému Subversion a vstúpiť do projektu.

Vytvorenie úložiska Subversion

Úložisko systému Subversion môžeme vytvoriť zadaním nasledujúceho príkazu do príkazového riadka:

svnadmin create /cesta/k/uložisku/projektu

Importovanie súborov

Po vytvorení úložiska môžeme naimportovať súbory do úložiska. Import do priečinka spustíme zadaním nasledujúceho príkazu do príkazového riadka:

svn import /cesta/k/import/priečinku file:///cesta/k/úložisku/projektu

Spôsoby prístupu

Do úložísk systému Subversion sa dá vstúpiť rôznymi spôsobmi - cez lokálny disk alebo pomocou rôznych sieťových protokolov. Umiestnenie úložiska však vždy zadávame vo forme URL adresy. V nasledujúcej tabuľke je popis rôznych metód prístupu.

Tabuľka 14.1. Metódy prístupu

Schéma

Spôsob prístupu

file://

Priamy prístup do úložiska (ak je na lokálnom disku)

http://

Prístup cez protokol WebDAV k Apache2 web serveru s podporou Subversion

https://

Rovnaký ako http://, len spolu s SSL šifrovaním

svn://

Prístup cez vlastný protokol k svnserve serveru

svn+ssh://

Rovnaký ako svn://, ale cez SSH tunel


V tejto časti si ukážeme, ako nastaviť Subversion, aby všetky tieto metódy prístupu fungovali. Povieme si len o základných nastaveniach. Viac informácii sa nachádza v knihe svn book.

Priamy prístup do úložiska (file://)

Toto je najjednoduchšia metóda prístupu. Nevyžaduje, aby bol spustený nejaký serverový proces Subversion. Táto metóda prístupu sa používa na prístup z rovnakej stanice ako je tá, na ktorej je umiestnené úložisko Subversion. Syntax príkazu, ktorý zadáme do príkazového riadka je nasledujúci:

svn co file:///cesta/k/uložisku/projektu

alebo

svn co file://localhost/cesta/k/uložisku/projektu
[Note]

Ak nezadáme názov stanice, je potrebné použiť tri lomky (///) -- dve pre protokol (file:// ) a jedno ako označenie kmeňového priečinka súborového systému. Ak zadáme názov stanice (localhost), stačia iba dve lomky (//).

Oprávnenia k úložisku závisia od oprávnení použíitých v súborovom systéme. Ak používateľ má právo na čítanie a zápis, môže prečítať obsah úložiska a zapisovať do neho.

Prístup cez protokol WebDAV (http://)

Ak chceme do úložiska Subversion pristupovať cez protokol WebDAV, musíme nastaviť webový server Apache 2. Musíme pridať nasledujúce riadky medzi zančky <VirtualHost> a </VirtualHost> do konfiguračného súboru /etc/apache2/apache2.conf:

 <Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Názov nášho úložiska"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
[Note]

Predchádzajúce konfiguračné riadky predpokladajú, že úložisko Subversion bolo vytvorené v priečinku /home/svn/ pomocou príkazu svnadmin. Bude sa dať ku nemu pristupovať pomocou URL adresy htpp://názov_stanice/svn/nazov_úložiska.

Aby bolo možné importovať a dokladať súbory do úložiska Subversion cez protokol HTTP, je potrebné, aby úložisko vlastnil používateľ HTTP. V systéme Ubuntu sa HTTP používateľ volá www-data. Vlastníka úložiska zmeníme zadaním nasledujúceho príkazu do príkazového riadka:

sudo chown -R www-data:www-data /cesta/k/úložisku
[Note]

Po zmene vlastníka úložiska na www-data nebude možné importovať a odosielať súbory do úložiska pomocou príkazu svn import file:/// pod iným používateľom než je www-data.

V ďalšom kroku vytvoríme súbor /etc/subversion/passwd, ktorý bude obsahovať autentifikačné informácie o používateľoch. Súbor vytvoríme zadaním nasledujúceho príkazu do príkazového riadka (ten vytvorí súbor a pridá prvého používateľa):

sudo htpasswd -c /etc/subversion/passwd meno_pouzivatela

Ak chceme pridať ďalších používateľov, môžeme vynechať prepínač "-c" inak by bol súbor nanovo vytvorený. Použijeme teda takýto príkaz:

sudo htpasswd /etc/subversion/password meno_pouzivatela

Po spustení príkazu bude potrebné zadať heslo. Po zadaní hesla sa pridá používateľ. Odteraz sa nový používateľ bude môcť pripojiť do úložiska spustením nasledujúceho príkazu:

svn co http://menoservera/sv
[Warning]

Heslo sa bude prenášať ako bežný text. Ak sa obávate odchytenia hesla, je potrebné použiť SSL šifrovanie. Viac informácii je v nasledujúcom texte.

Prístup cez protokol WebDAV s SSL šifrovaním (https://)

Spôsob pripojenia do úložiska Subversion cez protokol WebDAV s SSL šifrovaním (https://) je podobný prístupu http:// s tým rozdielom, že musíme nainštalovať a nastaviť digitálny certifikát pre webový server Apache2. Keď chceme použiť SSL spolu so Subversion pridáme konfiguráciu Apache2 uvedenú vyššie do súboru /etc/apache2/sites-available/default-ssl. Viac informácií o nastavovaní Apache2 spolu so SSL nájdeme v časti Konfigurácia HTTPS.

Môžeme nainštalovať digitálny certifikát podpísaný certifikačnou autoritou alebo nainštalovať sebou podpísaný certifikát.

Za predpokladu, že máme nainštalovaný a nastavený digitálny certifikát pre webový server Apache 2, môžeme vstúpiť do úložiska Subversion tak, ako je to popísané v predchádzajúcej časti. Spôsob prístupu je presne ten istý, s tým rozdielom, že na prístup do úložiska Subversion použijeme protokol https://.

Prístup pomocou vlastného protokolu (svn://)

Po vytvorení úložiska Subversion môžeme nastaviť prístupový protokol. Otvoríme súbor /cesta/k/úložisku/projektu/conf/svnserve.conf a nastavíme riadenie prístupu. Napríklad, ak chceme nastaviť autentifikáciu, odpoznámkujeme nasledujúce riadky v konfiguračnom súbore:

# [general]
# password-db = passwd

Po odpoznámkovaní predchádzajúcich riadkov môžeme upraviť zoznam používateľov v súbore passwd. Otvoríme súbor passwd, ktorý sa nachádza v rovnakom priečinku a pridáme nového používateľa. Syntax je nasledovná:

menopouzivatela = heslo

Viac informácií sa dozviete priamo v súbore.

Teraz môžeme vstúpiť do úložiska Subversion cez vlastný protokol svn://, buď z rovnakého alebo vzdialeného počítača, spustením príkazu svnserve. Syntax je nasledovná:

$ svnserve -d --foreground -r /cesta/k/úložisku
# -d -- režim démona
# --foreground -- spustí na popredí (užitočné pre ladenie)
# -r -- poskytnúť ako kmeňový priečinok

Viac informácie o príkaze získame po zadaní:
$ svnserve --help

Po spustení tohto príkazu Subversion začne načúvať na predvolenom porte (3690). Ak sa chceme pripojiť do úložiska project, musíme spustiť nasledujúci príkaz v príkazovom riadku:

svn co svn://nazovstanice/project project --username meno_pouzivatela

Ak je server tak nastavený, vyžiada si zadanie hesla. Po autentifikácii sa porovná kód s úložiskom Subversion. Ak chceme synchronizovať úložisko s lokálnou kópiou projektu, môžeme použiť príkaz svn update. Syntax príkazu je nasledovná:

cd priečinok_projektu ; svn update

Viac informácií o používaní podpríkazov príkazu svn sa dozvieme v referenčnej príručke. Napríklad, ak sa chceme dozvedieť viac o príkaze co (checkout), spustíme nasledujúci príkaz v príkazovom riadku:

svn co help

Prístup pomocou vlastného protokolu cez SSH tunel (svn+ssh://)

Konfigurácia a spustenie serverového procesu je rovnaká ako pri metóde svn://. Detaily sa nachádzajú v predchádzajúcej časti. V tomto kroku predpokladáme, že sme už vykonali predchádzajúce kroky a že sme spustili Subversion server pomocou príkazu svnserve.

Predpokladáme tiež, že je na počítači spustený ssh server, ktorý umožňuje pripojenia. Aby sme sa o tom uistili, prihlásime sa k počítaču pomocou ssh. Ak sme sa prihlásili, všetko funguje správne. Ak sa nám prihlásiť nepodarilo, je potrebné najskôr odstrániť tento problém. Návod, ako nainštalovať a nastaviť ssh server, sa nachádza v časti OpenSSH server.

Protokol svn+ssh:// sa používa na prístup k úložisku Subversion pomocou SSL šifrovania. Dátový prenos je šifrovaný pomocou tejto metódy. Ak sa chceme pripojiť do úložiska (napríklad pomocou príkazu checkout), použijeme nasledujúcu syntax:

svn co svn+ssh://nazovstanice/var/svn/repos/project
[Note]

Pri použití tejto metódy je potrebné použiť celú cestu (/cesta/k/úložisku/projektu) k úložisku Subversion.

Ak je server tak nastavený, vyžiada si prístupové heslo. Musíme zadať heslo, ktorým sa prihlasujeme cez ssh. Po prihlásení sa skontroluje kód z úložiska Subversion.