Subversion je svobodný opensource systém pro správu verzí, který je často považován za nástupce staršího systému CVS. To znamená, že funkce známé z CVS jsou běžně dostupné i v subversion, avšak bez nutnosti potýkat se s omezeními a nevýhodami CVS. O některých vlastnostech jsme psali již v kapitole 27.1.3 – „subversion“.
Instalace skladovací databáze na serveru je poměrně snadná. Subversion k tomuto účelu nabízí speciální administrační nástroj. Chcete-li vytvořit nový repositář (skladovací databázi), použijte příkaz:
svnadmin create /cesta/k/repositari
Další možnosti lze zjistit pomocí příkazu
svnadmin help.
Na rozdíl od CVS není subversion založená na RCS, nýbrž na Berkeley
databázi. Proto se ujistěte, že repositář neinstalujete na vzdálené
souborové systémy (např. NFS, AFS, Windows SMB). Databáze totiž vyžaduje
POSIX kompatibilní zamykací mechanizmy, které nejsou na těchto souborových
systémech podporovány.
Příkaz svnlook poskytuje informace o stávajícím repositáři.
svnlook info /cesta/k/repositari
Server musí být nastaven tak, aby umožnil uživatelům přístup k repositáři.
Použijte k tomu buď Apache webserver s WebDAV nebo svnserve, což je server
dodávaný spolu se subversion. Jakmile je svnserve spuštěn, je repositář
přístupný na příslušné URL přes protokol svn:// nebo
svn+ssh://. Uživatele, kteří se musejí při použití
svn autentizovat, lze nastavit v souboru
/etc/svnserve.conf.
Výběr mezi servery Apache a svnserve záleží na mnoha faktorech. Doporučujeme proto nastudovat si příručku k subversion. Více se o ní dozvíte v části 27.5.3 – „Další informace“.
K přístupu do repositáře použijte příkaz svn (podobně jako příkaz cvs). Obsah poskytovaný správně nastaveným serverem s odpovídajícím repositářem je přístupný jakýmkoliv klientem jedním z následujících příkazů:
svn list http://svn.example.com/cesta/k/projektu
nebo
svn list svn://svn.example.com/cesta/k/projektu
Uložit existující projekt do aktuálního adresáře (check out) lze
příkazem svn checkout:
svn checkout http://svn.example.com/cesta/k/projektu jmenoprojektu
Checkout vytvoří na klientovi nový podadresář
jmenoprojektu. V něm lze následně provádět operace
se soubory (přidávání, kopírování, přejmenovávání, mazání):
svn add soubor svn copy starysoubor novysoubor svn move starysoubor novysoubor svn delete soubor
Tyto příkazy lze rovněž použít na adresáře. Program subversion navíc umí zaznamenat vlastnosti souboru či adresáře:
svn propset license GPL foo.txt
Předchozí příklad nastaví hodnotu GPL
vlastnosti license. Vlastnosti lze zobrazit
příkazem svn proplist:
svn proplist --verbose foo.txt Properties on 'foo.txt': license : GPL
Změny lze na server uložit příkazem
svn commit.
Ostatní uživatelé se mohou synchronizovat příkazem
svn update.
Na rozdíl od CVS lze stav pracovního adresáře zobrazit bez přístupu
k repositáři pomocí svn status.
Lokální změny jsou zobrazeny v pěti sloupcích, z nichž nejdůležitější
je první:
Žádné změny.
Objekt bude přidán.
Objekt bude smazán.
Objekt byl změněn.
Objekt je v konfliktu.
Objekt byl ignorován.
Objekt není verzovacím systémem spravován.
Objekt chybí. Tento příznak značí, že byl objekt smazán či přesunut bez použití příslušného příkazu svn.
Objekt je spravován jako soubor, ale byl nahrazen adresářem, nebo naopak.
Druhý sloupec zobrazuje stav vlastností. Význam všech sloupců je popsán v příručce k subversion.
Příkaz svn help použijte,
pokud chcete získat popis parametrů příkazu:
svn help proplist
proplist (plist, pl): List all properties on files, dirs, or revisions.
usage: 1. proplist [PATH...]
2. proplist --revprop -r REV [URL]
1. Lists versioned props in working copy.
2. Lists unversioned remote props on repos revision.
Prvním místem, kde hledat další informace, je domovská stránka projektu
subversion na adrese http://subversion.tigris.org/. Velmi
doporučujeme také příručku, která je dostupná online na adrese http://svnbook.red-bean.com/svnbook/index.html nebo po instalaci
balíčku subversion-doc v souboru
file:///usr/share/doc/packages/subversion/html/book.html.