Kolegové programátoři, používáte nějaký systém pro správu verzí vašich výtvorů? Nevíte co to je? Chtěli byste se na něco zeptat, ale nevíte na co?
Je-li alespoň jedna odpověď ano, čtěte dále ...
Předem upozorňuji, že jsem stále v tomto oboru začátečníkem ... tak na to pozor.
Už dlouho jsem nadával na způsob vývoje mých projektů. Znáte to, někde nějaký adresář s pracovními kopiemi, po provedení změn upload na testovací místo a po otestování přesun do provozu. V lepším případě testovací místo = pracovní místo.
Za týden se zjistí nějaká chybka, která se začala projevovat až po nějaké nesouvisející změně ... co s tím? Není-li projekt velký a pracuje na ní jenom jeden člověk, nalezení a opravení je vlastně hračka. Pokud více lidí, je to prakticky nemožné ...
Jak zálohujete? Občas zabalení do ZIPu a vypálení CD? Nebo v lepším případě automaticky? Oba způsoby mají své nevýhody ... hlavně ty, že není žádná extra kontrola a evidence, co který archív obsahuje ...
Těchto několik nastíněných problémů řeší systémy pro správu verzí. O concurent version system (CVS) nebo Subversion (SVN) či dokonce SourceSafe jste určitě slyšeli. Ale netroufli jste se ho použít. Nebudu nic nalhávat - to byl můj případ. Až poslední dobou mě okolnosti donutili. A sáhnul jsem právě po Subversion.
Základní princip práce je poměrně jednoduchý: programujete si (nebo děláte co se vám se soubory zlíbí) jak jste zvyklí doposud. Nic vás neomezuje - vše je u vás na disku. Po základním otestování provedených změn je potvrdíte (doslova commit). Změnovky se odešlou na server, vytvoří se nové číslo revize a od té chvíle máte možnost se k této verzi libovolně vracet. Vytvoříte něco, čemu se říká stable release? Aktuální vývojovou revizi pár klikama myší zkopírujete někam vedle (stále se bavíme o serveru) a opět: máte ji zakonzervovanou navždy. Jednou z výhod subversion je udržování pouze naprosto nejnutnějších dat na serveru - ta kopie ve skutečnosti vytvoří pouze odkazy a fyzická kopie souboru se provede až se skutečně změní "originál". A i tak jsou ukládány pouze rozdílové údaje ... Náročnost na diskový prostor je překvapivě malá (pokud teda nebudete verzovat galerii obrázků z dovolené).
Nemám v úmyslu popisovat všechny vlastnosti systému, to nechám na vás a na vašem studiu dokumentace. Ale co je nejdůležitější - nabízím použití serveru KHnetu! Jaké jsou podmínky? Moc jich není: být členem khnetu, poslat meilík s jménem a heslem které budete používat a nepřehánět to s objemem verzovaných dat (lze "do toho hodit" cokoliv). Vyhrazuji si právo objem kontrolovat a případně i účet zrušit. Přeci jenom ... kapacita není neomezená.
Zálohování subversion repository zatím vyřešeno nemám, takže na to nespoléhejte ... pracovní kopii si chraňte stále tak jak jste zvyklí. Ale vzhledem k tomu, že tam mám svoje věci, tak to zanedlouho zprovozním. Datové úložiště je hardwarový RAID10 (SATA) se dvěma hotspare disky, cache paměť (128M) řadiče je zálohovaná baterčičou a celý server je na UPSce. Spolehlivost je snad na dobré úrovni ...
update: zálohování existuje ...
Odkazy ke studiu (anglicky):
Subversion dokumentace
Velice dobrá kniha
Prima klient integrovaný do windows exploreru. Jeho nápověda je také dost důkladná a poučná
Klient z jiného soudku
Seznámení se Subversion (česky)
Informace, odkazy
Stručný návod (česky)
Seriálek na abclinuxu