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 26713×
Č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.
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í:
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.
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.
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.