Verzování
Author
Albert FloresVerzování je proces správy změn prováděných v dokumentu či souboru. Jde o systematickou metodu, která umožňuje ukládání předchozích verzí dokumentu a jejich porovnávání. Díky verzování je možné sledovat, jakými změnami dokument prošel a kdo je provedl. Tento proces je často využíván v rámci softwarového vývoje, ale také například při správě uměleckých děl či právních dokumentů. Verzování přináší mnoho výhod, jako je zvýšení přehlednosti a transparentnosti změn, zajištění ochrany dokumentu před neautorizovanými úpravami a umožnění spolupráce více uživatelů na jednom dokumentu. Existuje mnoho nástrojů a systémů, které umožňují verzování, například systém Git, který je široce používán v softwarovém vývoji.
Verzování je uchovávání historie veškerých změn provedených v informacích nebo datech. Nejčastěji se používá pro sledování změn ve zdrojových kódech softwaru během jeho vývoje, ale verzovat lze všechny počítačové soubory, a v případě potřeby se verzují i primární data.
Systém správy verzí (Version control system, VCS) obvykle eviduje, kdo, kdy a jakým způsobem změnil které řádky zdrojového kódu programu. Díky tomu lze zobrazit přesný stav sledovaných souborů kdykoliv v minulosti, a pokud úpravy způsobily nežádoucí chování, lze se vrátit ke starší verzi souborů. +more Každé změně provedené v určitém souboru bývá přiděleno unikátní číslo, obvykle nazývané číslo revize.
Neméně významným prvkem verzování je možnost spolupráce velkého množství programátorů na jednom softwarovém projektu, protože verzovací programy hlídají a pomáhají řešit případné kolize (situace, kdy stejné části zdrojového kódu mění dva či více programátorů současně). K tomu často dochází při vývoji open source programů, na němž se mohou podílet desítky nebo stovky programátorů z celého světa, kteří nejsou v přímém kontaktu. +more Jakýkoliv větší projekt si dnes nelze bez verzování představit.
Nejznámějšími představiteli verzovacích systémů jsou CVS a Apache Subversion, oba volně dostupné a open source. Oba systémy jsou centralizované - data ukládají na jediný server a většina použití systému (uložení změny, zkoumání změn, návrat k předchozí verzi …) vyžaduje komunikaci se serverem. +more Na vzestupu je používání distribuovaných systémů správy verzí, u kterých může mít každý vývojář kopii celé historie lokálně, což umožňuje rychlejší práci. Mezi známé distribuované systémy správy verzí patří například Git, Bazaar, Mercurial a další.
Verzovací systémy většinou neuchovávají úplný stav každé revize, ale pouze rozdíly mezi jednotlivými revizemi (pomocí nástrojů typu diff). Tím se obvykle šetří prostor, nevýhodou však bývá zpomalení přístupu.
Modely pro správu zdrojových kódů
Tradiční verzovací systémy používají centralizovaný model, kde se se všemi verzemi pracuje na sdíleném serveru. Pokud se dva vývojáři pokusí změnit stejný soubor ve stejný čas bez použití metod řídících přístup vývojářů, mohou si vzájemně svou práci přepsat. +more Centralizované verzovací systémy tento problém řeší použitím jednoho ze dvou odlišných „modelů pro správu zdrojových kódů“: zamykání souborů, nebo slučování verzí.
Zamykání souborů
Nejjednodušší metodou prevence problémů způsobených „souběžným přístupem“ je zamykání souborů. V daný okamžik má každý přístup ke všem souborům v centrálním repozitáři. +more Jakmile si jeden vývojář uzamkne soubor, ostatní ho mohou číst, ale nemohou tento soubor měnit, dokud ho vývojář neuvolní.
Zamykání souborů má jak klady, tak zápory. Systém ochraňuje proti zásadním konfliktům slučování souborů, pokud vývojář radikálně mění mnoho sekcí velkého souboru, nebo velké množství souborů. +more Nicméně pokud bude jeden vývojář držet soubor zamčený příliš dlouho, ostatní vývojáři se mohou pokusit obejít verzovací systém tím, že soubory změní lokálně a posléze jimi odemčené soubory přepíší a způsobí tím závažné problémy.
Slučování verzí
Většina verzovacích systémů umožňuje více vývojářům upravovat současně stejný soubor. První vývojář nahraje změny do centrálního repozitáře bez potíží. +more Další vývojáři musí svoje změny zkombinovat (sloučit) se změnami provedenými předchozími vývojáři, aby nedošlo k přepsání dřívějších změn novými změnami.
Slučování dvou souborů může být velice choulostivá operace a často je možné, pouze pokud je struktura dat jednoduchá, jako například u textových souborů. Výsledkem sloučení dvou obrázků vůbec nemusí být obrázek. +more Vývojář, který kombinuje svůj zdrojový kód s prací předchozích vývojářů musí důkladně zkontrolovat, že změny vzniklé při slučování verzí jsou navzájem kompatibilní a že sloučení nezanese do výsledku logické chyby. Tyto problémy omezují schopnost systémů automaticky či poloautomaticky slučovat soubory, pokud se nejedná o soubory textové. Existují však pluginy umožňující slučování některých netextových souborů.
Integrace
Řada z pokročilejších verzovacích systémů nabízí řadu možností, jak je integrovat do dalších nástrojů. Pro vývojová prostředí jako jsou Oracle JDeveloper, IntelliJ IDEA, Eclipse a Microsoft Visual Studio jsou k dispozici pluginy. +more Delphi, NetBeans, Xcode a GNU Emacs mají podporu verzování integrovanou.
Odkazy
Související články
verze * CVS * Revision Control System * Apache Subversion * Git * diff
Externí odkazy
[url=http://svnbook. red-bean. +morecom/]Manuál k Subversion[/url] s výtečným úvodem do verzování a obecně používaných technik * [url=http://www. root. cz/clanky/git-a-subversion/]Git a Subversion[/url] * [url=http://www. abclinuxu. cz/clanky/distribuovane-verzovaci-systemy-uvod-1]Distribuované verzovací systémy - úvod (1)[/url].
Kategorie:Správa verzí Kategorie:Softwarové inženýrství Kategorie:Počítačová terminologie