Slučování projektů
Změny mezi projekty je třeba ručně přenášet. Pro zahájení obou operací je třeba nastavit jako aktuální projekt podprojekt. Pro přenášení změn jsou k dispozici dvě operace, dostupné z menu pro výběr projektu.
Sloučit - převzetí změn z rodičovského projektu do podprojektu
Potvrdit - potvrzení změn z podprojektu do rodičovského projektu
V záložce Základní údaje podprojektu je možné vybrat vlastnost Automaticky aktualizovat. Je li vlastnost nastavena, bude operace sloučit prováděna automaticky, v případě, že všechny příchozí změny jsou bezkonfliktní. Je-li detekován konflikt, zobrazí se u projektu ikona varování (), a v detailu projektu je zobrazen důvod selhání automatického sloučení.
Sloučení projektu
Při použití příkazu Sloučit je zahájen proces sloučení změn do aktuálního projektu z jeho rodičovského projektu. Příkaz zobrazí panel Sloučit změny, v záložce Příchozí změny. V panelu je znovu naznačen směr přenosu dat, například Hlavní projekt
Editace.
Vlastní proces sloučení probíhá v až třech krocích:
- Pokud zdrojový projekt a cílový projekt nemají shodnou verzi datového slovníku, je třeba verze datových slovníků sjednotit, aby bylo možné pokračovat ve sloučení samotných dat. Více viz sloučení slovníku.
- Další krok, režim náhledu, zobrazuje příchozí změny ze zdrojového projektu. Po případné kontrole lze pokračovat stisknutím tlačítka Sloučit změny.
- Ve třetím kroku jsou příchozí změny uloženy v sezení cílového projektu. Po vyřešení případných konfliktů lze sloučení dokončit uložením sezení.
Režim náhledu
V režimu náhledu jsou zobrazeny jednotlivé příchozí změny (změny položek), které budou přeneseny do cílového projektu. U každé položky je uveden typ změny, v závislosti na změnách této položky ve zdrojovém a cílovém projektu.
Změny (operace) mohou být následující:
- Konflikt - konflikt atributů
- Položka byla změněná ve zdrojovém i v cílovém projektu, a to způsobem, který nelze automaticky vyřešit, tedy alespoň v jednom atributu vznikl konflikt. V této situaci bude později vyžadována uživatelská akce pro vyřešení konfliktu.
- Konflikt - bez konfliktu atributů
- Položka byla změněná ve zdrojovém i v cílovém projektu, ale lze provést automatické sloučení. Tedy uživatel buď změnil v jednotlivých projektech různé atributy, nebo nastavil stejný atribut v obou projektech na shodnou hodnotu.
- Nová verze
- Existující položka byla modifikována ve zdrojovém projektu, ale nikoli v cílovém projektu.
- Nová položka
- Ve zdrojovém projektu vznikla nová položka, která v cílovém projektu ještě neexistuje.
Pro jednotlivé položky v seznamu lze zobrazit detail, který shrnuje změny provedené v položce. Detail je rozdělen do tří sloupců; v levém sloupci je aktuální verze položky v cílovém projektu, v pravém sloupci je aktuální verze položky ve zdrojovém projektu. V prostředním sloupci je pak společná verze položky, ze které obě verze vycházejí. Hodnoty atributů, které byly změněny, jsou označeny modrým podbarvením. Hodnoty atributů, které jsou v konfliktu, jsou označeny červeným podbarvením.
Režim řešení konfliktů
Po stisknutí tlačítka Sloučit změny dojde k přenesení příchozích změn ze zdrojového projektu do sezení cílového projektu. Konflikty uvnitř položek jsou automaticky vyřešeny, pokud je to možné. V seznamu změn zůstanou pouze nevyřešené konflikty. Všechny konflikty v seznamu je nutné vyřešit, nebo označit jako vyřešené. Po vyřešení konfliktů lze tlačítkem Dokončit uložit sezení, čímž se proces sloučení změn dokončí.
Ze seznamu konfliktů lze použít následující akce z kontextového menu:
Vybrat
- Též prosté kliknutí na záznam - zobrazí detail konfliktní položky, s možností ručního vyřešení konfliktů, viz níže.
Upravit
- Zobrazí položku do běžného editoru, kde je možné ji upravit
Označit jako vyřešené
- Ponechá položku tak jak je, a odstraní ji ze seznamů nevyřešených konfliktů
Ruční řešení konfliktů
Po kliknutí na položku s konfliktem atributů je zobrazen detail položky podobný detailu v režimu náhledu. V tomto detailu už však v prostředním sloupci je aktuální verze položky, která vznikla automatickým sloučením. Zároveň u atributů, které jsou konfliktní, jsou k dispozici akce pro řešení konfliktů. Akce se zobrazí při najetí myší na řádek příslušného atributu.
K dispozici jsou následující akce.
Označit jako vyřešené
- Ponechá hodnotu atributu tak jak je a pouze konflikt atributu označí jako vyřešený
Použít hodnotu ze zdrojového / cílového projektu
- Použije hodnotu atributu z příslušného projektu a označí konflikt jako vyřešený
Použít nástroj pro sloučení hodnot
- Otevře speciální nástroj pro sloučení hodnot, pokud je pro daný typ atributu k dispozici.
Všechny uvedené akce označí konflikt atributu jako vyřešený, což se projeví změnou podbarvení atributu na žlutou barvu. V případě potřeby můžeme atribut vrátit do stavu nevyřešený pomocí akce označit jako nevyřešené. Po vypořádání všech konfliktů atributů lze dialog zavřít tlačítkem Označit jako vyřešené, čímž bude celá položka vyjmuta ze seznamu konfliktů.
Konflikt změněno / smazáno
V případě, že dojde ke konfliktu změněno / smazáno, tedy položka je v jednom z projektů změněná, a v druhém projektu smazána, dojde při automatickém sloučení vždy ke zrušení smazání. Konflikt lze vyřešit dvěma způsoby - buď konflikt označit jako vyřešený, tedy ponechat změněnou verzi položky, nebo položku smazat, tedy ponechat smazání položky.
Sloučení vybraných položek
Výše uvedený postup popisoval hromadný přesun všech změn, které mezi dvěma projekty vznikly. Tento postup je doporučený, obvykle zohledňuje případné datové závislosti mezi změněnými položkami.
V případě potřeby je možné přenášet položky mezi projekty jednotlivě - tzv. cherrypicking - tedy potvrdit nebo sloučit změny v konkrétní položce. Takovou změnu lze provést v režimu náhledu příchozích či odchozích změn, příkazem Potvrdit či sloučit z kontextového menu. Změnu položky lze provést i z hlavní administrace - výpisu složky. Pokud položka má změněný obsah v aktuálním projektu proti rodičovskému projektu, resp. v rodičovském projektu proti aktuálnímu projektu, jsou k dispozici operace potvrzení resp. sloučení takové položky.
Pokud je potvrzení nebo sloučení jednotlivé položky bezkonfliktní, je provedeno okamžitě, a výsledek je uložen do sezení cílového projektu. Pokud je potvrzení nebo sloučení konfliktní, po provedení operace je uživatel přepnut do administrace sloučení v režimu řešení konfliktů.
Potvrzení projektu
Proces potvrzení projektu probíhá identicky jako sloučení projektu, pouze směr přesunu je z podprojektu do jeho rodičovského projektu. V případě, že provádíme potvrzení projektu ihned po dokončení sloučení projektu, aniž by v projektech vznikly další změny, obvykle je takový přesun dat bezkonfliktní, jelikož všechny konflikty byly již vyřešeny při sloučení projektu.
Sloučení slovníku
Přesun změny struktury dat (datového slovníku) podléhají stejným pravidlům jako přesun změn v datech.
Pokud se verze slovníků zdrojového a cílového projektu neshodují, mohou nastat tři možnosti:
- Slovník byl změněn pouze ve zdrojovém projektu. V takovém případě je třeba pouze potvrdit aktualizaci slovníku cílového projektu.
- Slovník byl změněn pouze v cílovém projektu. V takovém případě je třeba přepnout do opačné záložky, a potvrdit aktualizaci slovníku.
- Slovník byl změněn v obou projektech. V takovém případě je nutné provést sloučení projektů, viz níže. Sloučení projektů je možné provést pouze v režimu slučování projektu (směr z rodičovského projektu do podprojektu). Výsledkem sloučení je nová verze slovníku v podprojektu, kterou je třeba potvrdit do rodičovského projektu.
Konflikty ve slovníku
Pokud dojde ke změně slovníku nezávisle ve dvou projektech, vznikne konflikt ve slovníku. V takovém případě je třeba sloučit změny pomocí nástroje Sloučení slovníků.
Nástroj zobrazí verze slovníků, které se účastní sloučení - společná verze, verze v rodičovském projektu, a verze v aktuálním projektu. Dále jsou v tabulce zobrazeny změny proti společné verzi - v levé části změny provedené v rodičovském projektu, v pravé části změny provedené v aktuálním projektu.
Změny, označené zelenou barvou, se automaticky přenesou do nové sloučené verze. Takto jsou předem označené všechny změny, které nejsou konfliktní - mění objekt nebo jeho část v jednom projektu, která nebyla změněna ve druhém projektu.
Pokud došlo ke změně objektu nebo jeho části v obou projektech zároveň (v příkladu výše došlo ke změně skupin atributu Poznámka), jedná se o konflikt uvnitř slovníku. Obě konfliktní změny jsou označeny žlutě - to znamená, že ani jedna změna nebude propsána do sloučené verze slovníku. Konflikt je nutné vyřešit ručně, výběrem jedné ze změn, která bude aplikována. Druhá změna bude ignorována, a musí být případně aplikována ručně po dokončení sloučení slovníku.