Subversion (1/3) - nástroj pro správu verzí

Nástroje pro správu verzí potřebuje dnes snad každý tým vývojářů. A jak uvidíme, nejen oni.

23.8.2005 07:00 | Petr Zajíc | přečteno 26276×

Článek o subversion prostě musím napsat. Nejenže jsem to slíbil v konferenci, ale také jsem dostal prostor díky vynikajícímu článku kolegy Jirky Václavíka "Linux v příkazech - správci verzí". Ten se o Subversion zmínil jen letmo, protože se na něj "chystá zvláštní článek". Nuže, toto jest on.

Správci verzí

Nejprve mi však dovolte trochu teorie. Čtenáři používající správce verzí stejně automaticky jako ledničku na chlazení piva mi prominou, pro ostatní to budiž úvodem, který jim řekne o co kráčí. Správce verzí je jednoduše řečeno systém, který umožní administrovat "více různých varinat něčeho". Navíc umožní, aby se v "něčem" vrtalo více lidí najednou s minimáními důsledky na schopnost toho "něčeho" i nadále fungovat.

Tím "něčím" bývá typicky zdrojový kód programu, ale není to nutné. Správce verzí můžete potřebovat kdykoli, kdy pracujete se souborem nebo soubory, jež se dají nějak smysluplně verzovat. To pro mého tchána skládajícího na počítači hudbu například znamená, že systém pro správu verzí může použít na různé remaky nebo arange svých písní; pro sekretářku to může znamenat ukládání verzí šablon či dokumentů a tak dále. První mýtus, který bych rád vyvrátil tedy je: Verzovací systém se dá použít i NA JINÉ VĚCI než jen na správu kódu.

Další oblíbenou fámou v souvislosti se správci kódu je to, že se tvrdí, že nasazení takového systému má význam pouze v případě, kdy na projektu pracuje mnoho lidí. Skutečnost je ta, že si můžete verzovat I PRÁCI JEDINÉHO ČLOVĚKA. Tak například zdrojový kód všeho mého software je takto spravován i přesto, že jsem jej třeba vyvíjel sám bez účasti jiných vývojářů. Mohu tak přesně vědět, v jakém stavu se práce nacházela před pěti měsíci, nebo kolik změn se na daném souboru provedlo v posledních třech verzích. Na druhou stranu je pravda, že se vzrůstajícím množstvím "lidí na projektu" vzrůstá i potřeba nějakého smysluplného verzování.

A konečně bych rád upřesnil dvě další věci, které se občas v souvislosti se systémy na správu kódu přetřásají:

  1. Správce verzí MŮŽETE použít na textová i binární data. V jediném projektu to dokonce obyčejně lze i mixovat.
  2. Správce verzí lze v drtivé většině případů (možná ve všech) nasadit v síťovém prostředí. Včetně sítě internet. Což, jak asi všichni chápou, může znamenat, že lze se správci verzí pracovat mezi geograficky vzdálenými místy.

Něco pojmů

Abychom si ve zbytku této minisérie rozuměli, připravil jsem pro vás malý slovníček pojmů. Některá hesla platí napříč systémy pro správu verzí obecně, jiná jsem definoval s přihlédnutím k tomu, jak se používají ve správci Subversion:

To by prozatím stačilo, další pojmy budeme vysvětlovat tak, jak se k nim budeme v průběhu času dostávat.

Subversion

Na tomto místě by se asi slušelo říci ještě něco o hostorii systémů pro správu verzí, ale to bych se často křížil se zmiňovaným článkem Jirky Václavíka. Fakt je, že místo určité legendy mezi těmito systémy zaujímá CVS. A fakt rovněž je, že tento systém trpí jistými neduhy, které přímo volají po něčem dalším. CVS se i dnes dost používá (přinejmenším díky své rozšířenosti a počtu nástrojů, jimiž disponuje), ale existuje řada projektů, které si daly za cíl napsat podobnou věc, ale s méně omezeními.

Mezi těmito projekty již nějakou dobu vyniká Subversion. Tahle aktivně vyvíjená věcička je poslední dobou dost vidět, a protože ji sám používám, rád se s Vámi rozdělím o svoje postřehy a zkušenosti. Subversion je systém pro správu kódu vyvíjený pod licencí ve stylu Apache a je schopný fungovat pod systémy Unix, OS/2, MacOS X a Win32. Což zahrnuje pochopitelně i všechny systémy GNU-Linux. Subversion má možnost pracovat se dvěma typy úložišť, kde jedno je databázové a druhé souborové. Dokumentace k subversion je reprezentována hlavně vynikající knihou Subversion book. V ní se lze dozvědět vše potřebné a je to hezky utříděné. V sekci věnované odkazům na stránce projektu můžete najít hezká udělátka - konvertory úložišť, grafické klienty a tak dále. Ve srovnání s CVS je sice souvisejících programů méně, ale svou funkci plní většinou dobře.

Vyjmenovávat všechny výhody a nevýhody Subversion (nebo je srovnávat s "konkurenčními" systémy) se mi nechce - už to udělali jiní. Zájemce bych odkázal na dlouhý a vyčerpávající přehled zde. (Pokud ale nejste v těchto věcech zběhlí, článek Vám moc neřekne.) Při přechodu z jednoho systému správce verzí na jiný se musí zvážit mnoho věcí - od času až po náklady. Veselejší je to u nových projektů - tam lze nasadit systém prakticky jakýkoli. My se budeme nadále zabývat již jen Subversion.

Instalujeme Subversion

Pozn.: Subversion můžete nainstalovat rovněž na systémy Windows. Rozebírat to tady nebudeme, ale je dobré vědět, že i na Windows Subversion pracuje. Když se totiž někdo bude rozhodovat o přechodu z Windows na Linux, může si to usnadnit tím, že použije nástroje fungující na obou systémech. Subversion se k této filozofii hlásí - hrdě a právem.

Instalovat Subversion na desktop s Fedorou 4 je opravdu hračka. Pokud to chcete udělat, stačí napsat něco jako

yum install subversion

a instalátor se postará o vše potřebné. Pokud si chcete RPM stáhnout sami, můžete s hledáním začít třeba v Dagově repozitáři. Poměrně přehledná stránka downloadů projektu Subversion popisuje umístění souborů pro instalaci na jiné systémy. Pokud po tom toužíte, můžete si Subversion i zkompilovat ze zdrojových kódů. Tak či tak byste při instalaci na Linux neměli mít výraznější problémy (pokud ano, napište do diskuse pod článkem).

To, že Subversion máte v systému nainstalovánu, zjistíte jednoduše pomocí následujícího příkazu:

svn --version

Ten by měl vrátit verzi nainstalovaného systému subversion a rovněž informace o některých modulech, které snad bude tento systém používat. V současné době je ostrá verze číslo 1.2.1. Příště se podíváme na to, jak se subversion pracovat. Protože jsme v linuxu, ukážu vám, že většinu práce při správě verzí můžete udělat z příkazové řádky.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=934