Příkaz Sloučit (Správa verzí Team Foundation)

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

Visual Studio 2019 | Visual Studio 2022

Příkaz tf merge použije změny z jedné větve do druhé v Správa verzí Team Foundation (TFVC).

Poznámka:

Výsledky tohoto příkazu se neprojeví na serveru Azure DevOps, dokud neproděláte operaci vrácení se změnami. Další informace naleznete v tématu Vývoj kódu a správa čekajících změn.

Požadavky

Chcete-li použít merge příkaz, musíte mít oprávnění Rezervovat nastavena na Povolit pro složku pracovního prostoru, která obsahuje , destinationa musíte mít oprávnění ke čtení nastavena na Povolit pro složku pracovního prostoru, která obsahuje source. Další informace naleznete v tématu Výchozí oprávnění TFVC.

Syntaxe

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Parametry

Argumenty

Argument

Popis

<versionspec>

Poskytuje hodnotu, například C2 pro /version tuto možnost. Další informace o tom, jak TFVC parsuje specifikaci verze k určení položek v rámci oboru, naleznete v tématu Použití příkazů správy verzí Team Foundation.

<source>

Určuje soubor nebo složku, které se mají chovat jako zdroj sloučení.

<destination>

Určuje soubor nebo složku, které se mají chovat jako cíl sloučení.

<username>

Poskytuje hodnotu možnosti /login . Hodnotu můžete zadat username buď nebo DOMAIN\usernameusername.

Možnosti

Možnost

Popis

/recursive

source Odpovídá specifikaci položky v aktuálním adresáři a všech podsložkách.

/force

Ignoruje historii sloučení a sloučí zadané změny ze zdroje do cíle, a to i v případě, že některé nebo všechny tyto změny byly sloučeny dříve.

/candidate

Vytiskne seznam všech sad změn ve zdroji, které ještě nebyly sloučeny do cíle. Seznam by měl obsahovat ID sady změn, které nebyly sloučeny, a další základní informace o této sadě změn. Hvězdička pro daný výsledek označuje, že byla částečně sloučena, což znamená, že některé změny v sadě změn byly sloučeny a jiné změny nebyly sloučeny.

/discard

Neprovádí operaci sloučení, ale aktualizuje historii sloučení, aby sledovala, že došlo ke sloučení. Tím se zahodí sada změn, která se použije pro konkrétní sloučení.

/version

U selektivního sloučení určuje tato možnost rozsah, který se má sloučit do cíle. U hromadné korespondence pro dochytávání určuje tento parametr verzi, před kterou by se měly sloučit všechny sloučené změny.

U selektivního sloučení označuje rozsah verzí počáteční a koncové body sady změn, které se mají sloučit. Pokud se například pokusíte sloučit verzi 4~6, sady změn 4, 5 a 6 se sloučí.

/lock

Určuje typ zámku nebo odebere zámek z položky. Další informace najdete v tématu Vysvětlení typů zámků.

Možnosti uzamčení:

  • None: Neumisťuje zámek na položku a odebere z položky žádný existující zámek.

  • Checkin: Ostatní uživatelé můžou rezervovat zadané položky, ale nemůžou vrátit revize uzamčených souborů, dokud zámek neuvolníte provedením vrácení se změnami. Pokud někdo jiný uživatel zamkl některou ze zadaných položek, operace uzamčení selže.

  • Checkout: Zabrání uživatelům v vrácení se sem nebo rezervaci některé ze zadaných položek, dokud zámek explicitně neuvolníte. Pokud někdo jiný uživatel zamkl některou ze zadaných položek nebo pokud existují čekající změny u jakékoli položky, operace uzamčení selže.

/preview

Zobrazí náhled hromadné korespondence.

/baseless

Provede sloučení bez základní verze. To znamená, že umožňuje uživateli sloučit soubory a složky, které nemají vztah sloučení. Po bez základovém sloučení existuje relace sloučení a budoucí sloučení nemusí být bez základu.

Poznámka:

Sloučení bez základu nemůže odstranit soubory v cíli. Tyto změny můžete přenést ručně.

/noimplicitbaseless

Určuje, že TFVC nebude provádět implicitní bezobslužné sloučení mezi dvěma položkami, které mají stejný relativní název ve dvou nesouvisejících stromech správy verzí.

/nosummary

Vynechá souhrn konfliktů, chyb a upozornění.

/noprompt

Potlačí všechny výzvy k zadání vstupu od vás.

/conservative

Výsledkem jsou další konflikty při slučování jedné větve do druhé.

/format

Určuje formáty konfliktů při slučování souhrnů:

  • Brief (výchozí): Shrnuje pouze celkový počet konfliktů, upozornění a chyb.
  • Detailed: Shrnuje nejen celkový počet konfliktů, upozornění a chyb, ale také uvádí podrobnosti o jednotlivých konfliktech.

Poznámka:

Tato možnost platí jenom v případě, že výstup obsahuje souhrn konfliktů. Souhrn se nedá zobrazit, pokud /nosummary se tato možnost používá nebo sloučení způsobilo méně než 10 konfliktů, upozornění a chyb.

/login

Určuje uživatelské jméno a heslo pro ověření uživatele pomocí Azure DevOps.

Poznámky

Pomocí příkazu nástroje příkazového tf řádku můžete merge použít změny v existující zdrojové větvi na existující cílovou větev. Jednotlivé revize nebo úplnou sadu změn můžete sloučit do cílové větve. Změny ze zdroje můžete sloučit do cílové větve nebo z cíle do zdrojové větve.

Příkaz merge také umožňuje dotazovat se na změny ve zdrojové větvi, které nebyly migrovány do cílové větve. Příkaz také umožňuje určit, že určité změny nebudou nikdy sloučeny ze zdroje do cíle a již by se neměly zobrazovat jako kandidáti pro operaci sloučení.

Další informace o tom, jak používat nástroj příkazového tf řádku, naleznete v tématu Použití příkazů správy verzí Team Foundation.

Bez základové sloučení

Sloučením bez základu můžete sloučit položky, které nejsou přímo rozvětvené od sebe. Chcete-li provést bez základné sloučení, musíte použít tf merge příkaz. Když provedete bez základné sloučení, TFVC nemá žádné informace o vztahu souborů ve větvích. Při bezproblémovém sloučení je nutné provést ruční řešení konfliktů. Jakmile provedete bez základné sloučení a vyřešíte případné konflikty, TFVC zaznamená historii sloučení a vytvoří relaci mezi složkami a soubory.

Při spuštění tf mergeTFVC provede implicitní bezvýhradné sloučení mezi položkami, které mají stejný relativní název ve dvou dříve souvisejících stromech řízených verzí. Můžete například chtít sloučit související větve $SRC a $TGT. Obě větve obsahují nesouvisející soubor s názvem a.txt. Když spustíte tf merge, TFVC vytvoří relaci mezi těmito dvěma a.txt soubory, pokud jsou oba soubory stejné, šifrování kompatibilní se standardem FIPS je zakázané a zdrojový soubor nesouvisí s žádným jiným souborem v cíli.

Pokud spustíte tf merge sadu /noimplicitbaseless možností, když se TFVC pokusí sloučit dvě větve, dva a.txt soubory vytvoří konflikt oboru názvů při pokusu o vrácení změn se změnami. Chcete-li vyřešit konflikt, musíte přejmenovat jeden ze souborů.

Příklady

Následující příklad sloučí změny z MyFile_beta1 , které nebyly sloučeny do MyFile_RTM.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

Následující příklad sloučí sadu změn 137 do větve2.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

Následující příklad sloučí všechny sady změn až do sady změn 137 do větve2.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

Následující příklad zobrazí seznam sad změn ve větvi1 , které nebyly sloučeny do větve2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

Následující příklad vytiskne seznam sad změn ve větvi2 , které nebyly sloučeny zpět do větve1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

Následující příklad zahodí sadu změn 137 jako kandidáta pro sloučení do větve2.

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

Následující příklad zahodí všechny sady změn až do sady změn 137 jako kandidáty pro sloučení do větve2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive