U nás ve firmě používáme program Subversion. Chtěl bych vám popsat několik výhod, které nás vedly k jeho použití namísto zatím běžnějšího CVS.
- bezpečný síťový přístup i při zápisu – pro šifrovaný spojení k CVS musíte použít tunelování přes ssh a je tedy nutné, aby uživatelé měli konzolový přístup. Rozchodit takové řešení z windows lze, ale není nejsnadnější.
- omezení přístupu – pokud chcete omezit přístup některým uživatelům nebo zamknout větev (branch) pro zápis, musíte „opatchovat“ CVS. U SVN můžete použít integrované ACL
- hooky – volání akcí (hooků) je jasně definované a vždy běží pod stejným uživatelem jako běží server. U CVS jsme s tím občas měli problémy.
- výpis větví a tagů – je možné se podívat na seznam větví a je dále je i strukturovat. U CVS se musíte dotazovat na soubor, který byl ve všech verzích (a přesto nemusí obsahovat některé značky a větve) a nebo používat externí nástroje jako je např. CVSQuery.
- commity jsou atomické – commity se uloží celé a nebo vůbec. Je možné snadno získat seznam zněnených souborů při commitu.
- TortoiseSVN – jedná se o klienta integrovaného do windows. Ten je tak snadný na používání, že jej používá i naše obchodní oddělení a všechny dokumenty tak ukládá do SVN.
- offline přístup – i když nejste připojeni k síti, můžete zjišťovat seznam změněných souborů, seznam změn (diff) nebo se vrátit k verzi v repository.
- jednodušší mergování – aby jste mohli mergovat u CVS, musíte vytvořit nejen větev (branch) ale i značku (tag). To vám umožňí pozdější sloučení změn zpět. Navíc před a po každém mergování je potřeba udělat další dvě značky – jedině tak můžete dohledat seznam namergovaných změn. U SVN nic takového dělat nemusíte. Jasně vídíte, kdy byla větev vytvořena a také seznam změn, které byly udělány při merge.
Děláme jen jednu věc – při commitu namergovaných změn přidáváme komentář „merge -r 1000:2000“ (1000 až 2000 jsou čísla verzí, které mergujete). Do příštích verzí svn slibují i lepší podporu mergování (např. automatické sledování sloučených změn)
- použítí WebDAVu – toto je jedna z méně důležitých přesto příjemných věcí. Někteří naši zákazníci neví co to repository je. Stačí jim webový přístup k souborům v SVN. Někteří ovšem SVN používají. Pro obě tyto skupiny můžeme používat stejné URL.
- modularita ověřování – protože SVN umí fungovat přes apache, je možné využít všechny ověřovací metody, které apache podporuje. Takže můžete ověřovat oproti passwd, LDAPu, kerberovi, databázi, … Můžete si tak sjednotit ověřování a přístup ke všem podpůrným prostředkům pro vývoj ve vaší firmě.
Jako další podpůrné nástroje používáme WebSVN, ViewSVN a vlastní „hooky“ pro propojení s bug tracking systémem.
Toto jsou mé hlavní důvody proč používat SVN.