Jednou z funkcií systémov správy verzií je schopnosť izolovať zmeny na samostatnej línii vývoja. Táto línia je známa ako vetva. Vetvy sa často používajú na vyskúšanie nových funkcií bez toho, aby došlo k narušeniu hlavnej línie vývoja chybami a chybami kompilátora. Akonáhle je nová funkcia dostatočne stabilná, potom je vývojová vetva zlúčená späť do hlavnej (kmeňovej) vetvy.
Ďalšou vlastnosťou systémov na správu verzií je schopnosť označiť konkrétne verzie (napr. vydanú verziu), aby ste mohli kedykoľvek znovu vytvoriť určitú zostavu alebo prostredie. Tento proces je známy ako označenie príznakom .
Subversion nemá špeciálne príkazy na vetvenie alebo označovanie príznakom, ale používa namiesto toho tzv. “odľahčené kópie”. Odľahčené kópie sú podobné pevným odkazom v systéme Unix, čo znamená, že namiesto vytvorenia úplnej kópie v úložisku sa vytvorí interný odkaz, ktorý ukazuje na konkrétny strom/revíziu. Vďaka tomu sa vetvy a príznaky vytvárajú veľmi rýchlo a v úložisku nezaberajú takmer žiadne ďalšie miesto.
Ak ste importovali svoj projekt s odporúčanou štruktúrou priečinkov, vytvorenie verzie pobočky alebo príznaku je veľmi jednoduché:
Vyberte priečinok vo svojej pracovnej kópii, ktorý chcete skopírovať do vetvy alebo príznaku a potom vyberte príkaz → .
Predvolená cieľová adresa URL pre novú vetvu bude zdrojová adresa URL, na ktorej je založená vaša pracovná kópia. Túto adresu URL budete musieť upraviť na novú cestu k svojej vetve/príznaku. Takže namiesto
http://svn.collab.net/repos/ProjectName/trunk
teraz môžete použiť niečo ako
http://svn.collab.net/repos/ProjectName/tags/Release_1.10
Ak si nepamätáte, aké pomenovanie ste použili naposledy, kliknutím pravým tlačidlom otvoríte prehľadávač úložiska, aby ste si mohli prezrieť existujúcu štruktúru úložiska.
Keď zadáte cieľovú adresu URL, musia už existovať všetky priečinky až po posledný, inak sa zobrazí chybové hlásenie. Vo vyššie uvedenom príklade musí existovať na vytvorenie príznaku Release_1.10
adresa URL http://svn.collab.net/repos/ProjectName/tags/
.
Ak však chcete vytvoriť vetvu/príznak na adrese URL, ktorá má medziľahlé priečinky, ktoré ešte neexistujú, môžete zaškrtnúť túto možnosť Vytvoriť medzľahlé priečinky
v dolnej časti dialógového okna. Ak je táto možnosť aktivovaná, automaticky sa vytvoria všetky medziľahlé priečinky.
Upozorňujeme, že táto možnosť je v predvolenom nastavení zakázaná, aby nedošlo k preklepom. Napríklad, ak ste zadali cieľovú adresu URL ako http://svn.collab.net/repos/ProjectName/Tags/Release_1.10
namiesto http://svn.collab.net/repos/ProjectName/tags/Release_1.10
, pri vypnutej možnosti by sa vyskytla chyba, ale pri zapnutej možnosti zapnutej by sa priečinok Tags
vytvoril automaticky a vy by ste skončili s priečinkom Tags
a priečinkom tags
.
Teraz musíte zvoliť zdroj kópie. Tu máte tri možnosti:
Nová vetva sa skopíruje priamo do úložiska z revízie HEAD. Z pracovnej kópie nie je potrebné prenášať žiadne údaje a vetva sa vytvorí veľmi rýchlo.
Nová vetva sa skopíruje priamo do úložiska, môžete si však zvoliť staršiu verziu. To je užitočné, ak ste zabudli vytvoriť príznak, keď ste minulý týždeň vydali svoj projekt. Ak si nepamätáte číslo revízie, kliknutím na tlačidlo vpravo zobrazíte záznam revízií a odtiaľ vyberiete číslo revízie. Z vašej pracovnej kópie sa opäť neprenášajú žiadne údaje a vetva sa vytvorí veľmi rýchlo.
Nová vetva je identická kópia vašej miestnej pracovnej kópie. Ak ste aktualizovali niektoré súbory na staršiu verziu vo vašej pracovnej kópii alebo ak ste vykonali lokálne zmeny, presne to ide do kópie. Prirodzene, tento druh komplexného príznaku môže zahŕňať prenos údajov z vašej pracovnej kópie späť do úložiska, ak tam už neexistuje.
Ak chcete, aby sa vaša pracovná kópia automaticky prepínala do novovytvorenej vetvy, zaškrtnite políčko Prepnúť pracovnú kópiu na novú vetvu/príznak. Ak to však urobíte, najskôr sa ubezpečte, že vaša pracovná kópia neobsahuje úpravy. Ak sa tak stane, tieto zmeny sa pri prepnutí zlúčia do vetvy pracovnej kópie.
Ak vaša pracovná kópia obsahuje ďalšie projekty s vlastnosťou svn:externals
, tieto externé položky budú uvedené v spodnej časti dialógového okna vetvy/príznaku. Pre každú externú adresu sa zobrazí cieľová cesta a zdrojová adresa URL.
Ak sa chcete ubezpečiť, že nový príznak je vždy v konzistentnom stave, skontrolujte všetky externé stránky, aby ich revízie mali pripnuté. Ak neskontrolujete externé komponenty a tieto externé komponenty odkazujú na revíziu HEAD, ktorá sa v budúcnosti môže zmeniť, kontrolou nového príznaku sa skontroluje, či sa HEAD revízia externá a vášho príznaku už nemusí skompilovať. Pri vytváraní príznaku je preto vždy dobré upraviť externé na explicitné revízie.
Externé zdroje sa automaticky pripnú buď k aktuálnej revízii HEAD, alebo k revízii bázy pracovnej kópie, v závislosti od zdroja vetvy/príznaku:
Tabuľka 4.1. Pripnutá revízia
Zdroj kópie | Pripnutá revízia |
---|---|
HEAD revízia v úložisku | HEAD revízie externého úložiska |
Určená revízia v úložisku | HEAD revízie externého úložiska |
Pracovná kópia | externá revízia bázy pracovnej kópie |
Ak projekt, ktorý je zahrnutý ako externý, obsahuje sám o sebe externé zdroje, tento nebude označený príznakom. Označiť príznakom možno iba externé podriadené položky.
Stlačte vnútri úložiska.
pre odovzdanie novej kópie do úložiska. Nezabudnite uviesť správu záznamu. Upozorňujeme, že kópia je vytvorenáUpozorňujeme, že pokiaľ ste sa nerozhodli prepnúť svoju pracovnú kópiu na novovytvorenú vetvu, vytvorenie vetvy alebo príznaku neovplyvní vašu pracovnú kópiu. Aj keď vytvoríte vetvu zo svojej pracovnej kópie, tieto zmeny sa vykonajú v novej vetve, nie v kmeni, takže vaša pracovná kópia môže byť stále označený ako upravená vzhľadom ku kmeňu.
Môžete tiež vytvoriť vetvu alebo príznak bez pracovnej kópie. Ak to chcete urobiť, otvorte prehľadávač úložiska. Môžete tam presunúť priečinky na nové miesto. Musíte pridržať Ctrl pri vytváraní kópie ťahaním, inak sa priečinok presunie, nie skopíruje.
Priečinok môžete pretiahnuť aj stlačenom pravom tlačidle myši. Po uvoľnení tlačidla myši môžete si z kontextovej ponuky vybrať, či chcete priečinok presunúť alebo skopírovať. Ak chcete vytvoriť vetvu alebo príznak, musíte priečinok samozrejme skopírovať a nie ho presunúť.
Ďalším spôsobom je dialógové okno záznamu. Môžete zobraziť dialógové okno záznamu napr. pre kmeň, vyberte revíziu (buď HEAD revíziu úplne hore alebo predošlú revíziu), kliknutím na ňu pravým tlačidlom myši a vyberte
....to je (nie naozaj) otázka. Zatiaľ čo overenie stiahne všetko z požadovanej vetvy v úložisku do vášho pracovného priečinka,
→ prenesie iba zmenené údaje do vašej pracovnej kópie. Dobré pre zaťaženie siete, dobré pre vašu trpezlivosť. :-)Aby ste mohli pracovať s vašou čerstvo vygenerovanou vetvou alebo príznakom, máte k dispozícii niekoľko spôsobov, ako s nimi pracovať. Môžete:
→ vykoná nové overenie v prázdnom priečinku. Môžete overovať na ľubovoľnom mieste na lokálnom disku a zo svojho úložiska môžete vytvoriť toľko pracovných kópií, koľko chcete.
Prehoďte svoju aktuálnu pracovnú kópiu na novovytvorenú kópiu v úložisku. Znova vyberte priečinok najvyššej úrovne vášho projektu a použite
→ z kontextovej ponuky.V nasledujúcom dialógovom okne zadajte adresu URL práve vytvorenej vetvy. Vyberte prepínač HEAD revízia kliknite na . Vaša pracovná kópia sa prehodí do novej vetvy/príznaku.
Prehodenie funguje rovnako ako aktualizácia, pretože nikdy nezruší vaše miestne zmeny. Všetky zmeny, ktoré ste vo svojej pracovnej kópii vykonali a ktoré ešte neboli odovzdané, budú zlúčené, keď urobíte prehodenie. Ak si neželáte, aby tak stalo, musíte zmeny pred prehodením buď odovzdať, alebo vrátiť svoju pracovnú kópiu k už odovzdanejj revízii (zvyčajne HEAD).
Ak chcete pracovať na kmeni a vetve, ale nechcete mať výdavky s čerstvým overením, môžete použitím prieskumníka Windows vytvoriť kópiu overenia svojho kmeňa do iného priečinka, potom príkazom
→ to skopírujete do svojej novej vetvy.Aj keď Subversion sám nerozlišuje medzi príznakmi a vetvami, spôsob, akým sa zvyčajne používajú, sa trochu líši.
Príznaky sa zvyčajne používajú na vytvorenie statickej snímky projektu v konkrétnej fáze. Z tohto dôvodu sa bežne nepoužívajú na vývoj - na to slúžia vetvy a preto odporúčame v prvom rade štruktúru úložiska /trunk /branches /tags
. Práce na revízii príznakov nie je dobrým nápadom, ale pretože vaše lokálne súbory nie sú chránené proti zápisu, nič vám v tom nebráni. Ak sa však pokúsite odovzdávať na ceste úložiska, ktorá obsahuje /tags/
, TortoiseSVN vás varuje.
Môže sa stať, že budete musieť urobiť ďalšie zmeny vo vydaní, ktoré ste už označili príznakom. Správnym spôsobom, ako to vyriešiť, je vytvoriť najskôr novú vetvu z príznaku a odovzdať vetvu. Vykonajte zmeny v tejto vetve a potom vytvorte nový príznak z tejto novej vetvy, napr. Verzia_1.0.1
.
Ak upravíte a odovzdáte pracovnú kópiu vytvorenú z vetvy, všetky zmeny prejdú do novej vetvy a nie do kmeňa. Uložené sú iba úpravy. Zvyšok zostáva odľahčenou kópiou.