Apache Subversion

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Apache Subversion (dříve Subversion - zkráceně SVN) je systém pro správu a verzování zdrojových kódů, náhrada za starší CVS. Snaží se zachovat podobný způsob a styl práce, ale odstranit nedostatky CVS jako například nemožnost přesunu nebo kopírování adresářů, časová a prostorová náročnost větvení a tagování a podobně.

Jednou z výhod systému Subversion je existence velmi dobré dokumentace (zatím v angličtině) - nazývá se Version Control with Subversion a je volně dostupná (viz odkazy). Další je existence více přístupových metod k repozitáři. +more Subversion je, tak jako CVS, založeno na principu centrálního repozitáře.

Popis nástroje Subversion

Subversion patří do kategorie version control nástrojů a uspokojuje základní potřeby při správě verzí. Je vyvíjen firmou CollabNet, Inc. +more a je šířen pod licencí, která umožňuje jeho bezplatné komerční použití, k dispozici jsou zdrojové kódy.

Důvodem jeho vzniku je snaha o nahrazení jiného velmi používaného systému, zvláště ve světě open source, CVS. Zčásti je Subversion systémem CVS inspirován, bere si z něj některé jeho vlastnosti, je však mnohem flexibilnější a jeho používání je snazší.

Lze ho provozovat na mnoha platformách, včetně Windows.

Skládá se ze dvou hlavních částí - klientská část a serverová.

Klientská část poskytuje nástroje pro práci s verzemi přímo v pracovním adresáři a komunikaci se serverovou částí, která se stará o repository (centrální úložiště).

K repository lze přistupovat různými způsoby (lokálně, přes nativní protokol svn://, DAV). Existuje několik klientských nástrojů, od příkazového řádku, přes webové rozhraní až po nástroje integrované do GUI operačního systému. +more Záleží na tom, co kterému uživateli vyhovuje nejvíce.

Základní pojmy a postupy

;Repository (repozitář, centrální úložiště) :Umožňuje organizovat projekt a spravovat jeho verze. Fyzicky je uloženo na souborovém systému serveru. +more K repository se přistupuje přes Repository Access Layer (RA) systému Subversion a jeho správa se provádí klientskými nástroji.

Branch (větev) :Slouží k organizaci repository, jedná se o jakousi analogii s adresáři. Pokud se z repository vyzvedne větev, na klientovi vznikne adresářová struktura, která přesně odpovídá větvím v repository.

Revision (revize) :Revize je pořadové číslo každé změny. Slouží ke sledování změn ve větvích v čase. +more Každá změna v nějaké větvi vytvoří novou revizi v rámci celé repository. Revize obsahuje informace o tom, co bylo změněno, kdo změnu provedl, poznámku a čas.

Pracovní kopie :Kopie dat z určité větve z repository v aktuální revizi na pevný disk lokálního klienta. Do pracovní kopie je možné provádět změny, které je možné commitem uložit zpět do repository.

Commit :Odeslání změn provedených od posledního commitu do repository. Commit je nejčastěji používaná změna při práci s repository. +more Pokud se provádí commit celé pracovní kopie, jedná se o atomickou operaci, jsou odeslány veškeré změny ve všech objektech ve správě verzí; pokud dojde k nějaké chybě při přenosu, není commit pro ostatní uživatele repository zviditelněn, není vytvořena nová revize.

Konflikt :Konflikt je stav, který signalizuje, že stejný objekt, který má být právě commitován, byl změněn někým jiným a nachází se v repository v aktuální revizi v jiné podobě, než jaký je v pracovní kopii. Nelze provést commit celé pracovní kopie, pokud se v ní nachází jeden nebo více souboru v konfliktu.

Changeset :Changeset je sada změn, které se posílají z pracovní kopie do repository (nebo sada změn provedená v rámci repository). Subversion ukládá vždy jen informace o provedených změnách, tedy rozdíly mezi jednotlivými revizemi. +more Tím se spoří místo na disku a snižuje objem dat přenášených z klienta na server.

Merge :Sloučení změn z větve v repository do pracovní kopie. Lze specifikovat určitý rozsah změn, a to intervalem revizí.

Cheap-copy :Technika, kterou se realizují kopie prováděné v rámci repository. Objekty nejsou v repository fyzicky duplikovány, ale jsou vytvořeny tzv. +more odkazy (link) na kopírované objekty. Zjednodušeně lze chápat takovýto link jako informaci o URL s číslem revize. Díky tomu má SVN nízké nároky na datový prostor.

Správa verzí pomocí Subversion

Následuje příklad, jak probíhá správa verzí pomocí SVN. Předpokládejme, že je již v repository importovaný projekt, jedná se o zjednodušený proces, kdy požadavky jsou vyvíjeny za sebou, nikoliv paralelně.

# Vyzvednutí projektu (tzv. checkout) z repository do lokálního adresáře. +more Tím se vytváří pracovní kopie, která funguje jako pracovní prostor. # Editace požadovaných souborů (přidání, mazání). # Odeslání změn do repository (tzv. commit). Změny jsou viditelné pro všechny uživatele repository. Spolu se změnami se zapisuje čas jejich poslání do repository, autor a textový komentář. Další vývojář může pokračovat v práci. # Další vývojář (pokud již má pracovní prostor) provede stažení aktuální verze z repository (tzv. update) a pokračuje ve vývoji. Vytvořené změny opět odešle do repository (tzv. commit).

Organizace repository

Z mnoha důvodu je třeba repository vhodným způsobem organizovat, pro organizování repository slouží větve. Vzhledem ke flexibilitě, kterou poskytuje díky konceptu cheap-copy, umožňuje Subversion měnit repository v souladu s aktuálně se měnícími požadavky.

Existuje několik osvědčených způsobů, jak repository v Subversion organizovat, záleží vždy na způsobu, jakým se daný projekt vyvíjí.

Související články

Verzování * Git

Reference

Externí odkazy

[url=http://subversion. apache. +moreorg]subversion. apache. org[/url] - Domovská stránka projektu Subversion, dříve [url=https://web. archive. org/web/20040401153243/http://subversion. tigris. org/]subversion. tigris. org[/url] * [url=http://svnbook. red-bean. com]svnbook. red-bean. com[/url] - Domovská stránka knihy Version Control with Subversion. * [url=https://web. archive. org/web/20111105181830/http://better-scm. berlios. de/]better-scm. berlios. de[/url] - iniciativa pro lepší SCM, přehled alternativ k CVS. * [url=https://web. archive. org/web/20060407095620/http://tortoisesvn. tigris. org/]tortoisesvn. tigris. org[/url] - Subversion klient pro Microsoft Windows (integrovaný i do průzkumníka) * [url=http://kdesvn. alwins-world. de]kdesvn. alwins-world. de[/url] - Subversion klient pro KDE * [url=https://web. archive. org/web/20110825210658/http://subclipse. tigris. org/]subclipse. tigris. org[/url] - Subversion plugin pro Eclipse.

* [url=https://web. archive. +moreorg/web/20081214222003/http://www. linuxsoft. cz/article_list. php. id_kategory=236]linuxsoft. cz[/url] - Seriál o Subversion na linuxsoft. cz (poskytující dostatečný úvod do problematiky).

Kategorie:Systémy pro správu verzí Kategorie:Svobodný software v C Kategorie:Software pod licencí Apache

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top