Řešení konfliktů Správa verzí Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Výhodou použití Správa verzí Team Foundation (TFVC) ke správě souborů je, že na souboru může souběžně pracovat několik lidí. Jednou z nevýhod je, že někdy musíte vyřešit konflikty, než se dostanete, vrátíte se změnami, zrušíte, sloučíte nebo vrátíte zpět soubory.

I když může být frustrující pro konflikty, systém poskytuje informace a nástroje, které vám pomůžou pochopit a vyřešit konflikty.

Konflikty můžete vyřešit také z příkazového řádku pomocí příkazu Vyřešit.

Tip

Pokud váš tým potřebuje spolupracovat na řešení velkého počtu konfliktů, například po operaci sloučení ve velkém základu kódu, může pomoct veřejný pracovní prostor na sdíleném vývojovém počítači. Další informace najdete v tématu Vytvoření a práce s pracovními prostory.

Řešení konfliktů

Konflikty, které vás blokují, můžete vyřešit pomocí okna Konflikty v sadě Visual Studio. Okno otevřete výběrem možnosti Akce>Vyřešit konflikty na stránce Čekající změny v Team Exploreru.

Snímek obrazovky s oknem Vyřešit konflikty při řešení konfliktů

Ve výchozím nastavení se v okně zobrazují pouze konflikty způsobené poslední operací, kterou jste se pokusili. Když je okno v tomto stavu, zobrazí se zpráva, která začíná: Použitý filtr cesty. Pokud chcete zobrazit všechny konflikty v pracovním prostoru, zvolte Získat všechny konflikty. Zobrazí se zpráva, která začíná na: <N> Konflikty .

Pokud od provedení změn souborů v pracovním prostoru uplynulo hodně času, mohlo dojít k novým konfliktům. Pokud chcete aktualizovat okno Vyřešit konflikty , zvolte Aktualizovat.

Snímek obrazovky s oknem Vyřešit konflikty

Každý konflikt obsahuje informace a někdy odkazy, které vám můžou pomoct s jejich řešením. Další informace získáte tak, že vyberete konflikt a zvolíte jednu z následujících možností:

  • Ikona historieHistorie k zobrazení historie souboru Pokud je operace, která způsobila konflikt, sloučení nebo vrácení zpět, můžete zvolit ovládací prvek nabídky napravo od historie a pak vybrat buď historii zdroje, nebo cílovou historii. Další informace naleznete v tématu Získání historie položky.

  • Compare icon.Porovnejte nebo vyberte šipku rozevíracího seznamu vedle ikony a pak zvolte příkaz. Otevře se okno Diff.

  • Ikona poznámkami.Poznámkami zobrazíte podrobnosti o všech změnách provedených v nejnovější verzi souboru, včetně toho, kdo každou změnu provedl a kdy provedl. Viz Zobrazení změn souborů pomocí poznámek.

Automaticky zodpovědět všechny konflikty

Ve výchozím nastavení se systém automaticky pokusí automaticky spustit všechny konflikty, pokud tuto možnost nevypnete. Pokud chcete vypnout automatické zpracování, zvolte Možnosti nástrojů>. V dialogovém okně Možnosti v části Visual Studio Team Foundation Server správy zdrojového kódu>zrušte výběr možnosti Pokus automaticky vyřešit konflikty při jejich vygenerování.

V okně Vyřešit konflikty můžete také ručně zvolit možnost AutoResolve Alla pak vybrat jednu z následujících možností:

  • Všechny typy konfliktů, pokud chcete, aby se systém pokusil konflikty vyřešit automaticky pomocí všech jeho heuristiky.

  • Konkrétní typy konfliktů, pokud chcete, aby se systém pokusil vyřešit konflikty, ale chcete vyloučit některé heuristiky.

    Zobrazí se dialogové okno Zvolit konflikty, které chcete vyřešit . Zkontrolujte nebo zrušte zaškrtnutí možností, které chcete povolit nebo zakázat, a pak zvolte AutoResolve.

    Systém se pokusí automaticky vyřešit konflikty zobrazené v okně Čekající změny . Všechny konflikty, které systém nedokáže vyřešit, zůstanou v okně. Tyto konflikty musíte vyřešit ručně.

Vysvětlení automatických možností

Typy konfliktů můžete automaticky vyřešit pomocí možnosti AutoResolve All . Když vyberete možnost Automaticky odstranit vše a pak vyberete Konkrétní typy konfliktů, zobrazí se dialogové okno Zvolit konflikty, které chcete vyřešit .

Snímek obrazovky s dialogovým oknem Zvolit konflikty k vyřešení

Příčina konfliktu

Příklad

Výběr zaškrtávacího políčka


V každé verzi souboru byly provedeny nekonfliktní změny obsahu.

V levé verzi souboru byla na začátku přidána nula . V souboru vpravo se na konec přidalo tři položky:

Snímek obrazovky se změnami nekonfliktního obsahu

Konflikty se všemi změnami obsahu

Změny obsahu byly provedeny během operace získání nebo vrácení se změnami, které jsou jedinečné pro pracovní prostor nebo během operace sloučení nebo vrácení zpět, které jsou jedinečné pro cílovou verzi.

Položky čtyři a pět byly přidány do pracovního prostoru nebo cílové verze:

Snímek obrazovky se změnami obsahu jedinečným pro pracovní prostor nebo cíl

Konflikty s změnami obsahu provedenými pouze v místním pracovním prostoru nebo cílové větvi

Změny obsahu byly provedeny během operace získání nebo vrácení se změnami, které jsou jedinečné pro server nebo během operace sloučení nebo vrácení zpět, které jsou jedinečné pro zdrojovou verzi.

Položky čtyři a pět byly přidány na server nebo zdrojová verze:

Snímek obrazovky se změnami obsahu, které jsou jedinečné pro server nebo zdroj

Konflikty s změnami obsahu provedené pouze ve verzi serveru nebo zdrojové větvi

Soubor se na serveru přejmenoval během operace získání nebo vrácení se změnami nebo ve zdrojové větvi během operace sloučení nebo vrácení zpět.

Rezervovali jste soubor s názvem launch.cs a pracovali na něm. Během této doby se někdo jiný přihlásil do sady změn, která ovlivnila stejný soubor. Tato sada změn neupravovala obsah souboru, ale změnila název souboru na start.cs.

Konflikty způsobené přejmenováním souboru ve verzi serveru nebo zdrojové větvi

Provedly se běžné změny obsahu, které měly za následek stejný obsah v každé verzi. Nebo jste soubor změnili, zkontrolovali jste ho prostřednictvím zamknutého buildu vrácení se změnami a vybrali možnost Zachovat čekající změny místně .

Změny jednotlivých verzí způsobily identický obsah souboru. Změny můžou být v obsahu souborů, jak je znázorněno v následujícím příkladu:

Snímek obrazovky, který zobrazuje změny identického obsahu v obou verzích

Konflikty způsobené identickou změnou serveru a pracovního prostoru

Tato možnost také řeší konflikty, které jsou způsobené všemi ostatními operacemi, například přejmenováním, odstraněním, zrušením odstranění a větví, což vede k identickým souborům.

Tip

Pokud toto políčko zaškrtnete, systém tyto změny vyřeší stažením verze serveru do pracovního prostoru.

Automatické sloučení vybraných konfliktů

Chcete-li se pokusit vyřešit vybrané konflikty pomocí všech předchozích možností automatického vytváření, vyberte jeden nebo více konfliktů a pak zvolte AutoMerge.

Tip

Stisknutím a podržením klávesy Ctrl nebo Shift můžete vybrat více konfliktů.

Poznámka:

Pokud je funkce AutoMerge zakázaná, musíte konflikty vyřešit ručně.

Ruční řešení vybraných konfliktů

Pokud systém nedokáže konflikt vyřešit automaticky nebo pokud se chcete ujistit, že rozumíte tomu, co se mění, musíte konflikt vyřešit ručně. V rámci každého konfliktu systém zobrazí akce, které můžete provést k vyřešení konfliktu. Zobrazené akce závisí na typu konfliktu a na operaci, která konflikt způsobila.

Použití okna sloučit

Při konfliktních změnách obsahu může dojít ke konfliktu, můžete zvolit možnost Sloučit změny v nástroji Sloučení. Zobrazí se okno Sloučit .

Snímek obrazovky znázorňující změny sloučení v nástroji pro sloučení

V okně Sloučit můžete:

  • Vyberte rozložení okna: Svislé zobrazení, Vodorovné zobrazení nebo Smíšené zobrazení.
  • Navigujte mezi rozdíly a konflikty.
  • Vyberte položky z levé a pravé verze souboru, abyste je zahrnuli do výsledků.
  • Do souboru zadejte další obsah v podokně Výsledek .
  • Zobrazte historii souboru. Další informace naleznete v tématu Získání historie položky.
  • Porovnejte verze souboru.
  • Když soubor označíte poznámkami, uvidíte, kdo co změnil. Další informace naleznete v tématu Zobrazení změn souborů pomocí anotace.

Až budete s obsahem podokna Výsledek spokojení, zvolte Přijmout sloučení.

Výsledek řešení konfliktu se zobrazí v podokně Výsledek .