Merge command (Team Foundation Version Control)
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é ve správě 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 najdete v tématu Vývoj kódu a správa čekajících změn.
Požadavky
Pokud chcete použít příkaz merge
, nastavte oprávnění Rezervovat na Povolit pro složku pracovního prostoru, která obsahuje destination
, a mít oprávnění Číst nastavená na Povolit pro složku pracovního prostoru, která obsahuje source
. Další informace najdete v tématu Výchozí oprávnění TFVC.
Syntax
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
argumentu
popis
<versionspec>
Poskytuje hodnotu, například C2
pro možnost /version
. Další informace o tom, jak TFVC parsuje specifikaci verze k určení položek v jeho oboru, najdete 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 /login
možnosti. Hodnotu username
můžete zadat buď jako DOMAIN\username
, nebo username
.
Volby
možnost
popis
/recursive
Odpovídá specifikaci položky source
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 Principy 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
: Jiní 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 se používá možnost /nosummary
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í merge
příkazu nástroje příkazového řádku tf
můžete 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á nebyla migrována 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 použití nástroje příkazového řádku tf
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. Pokud chcete provést bez základu sloučení, musíte použít příkaz tf merge
. 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 merge
TFVC provede implicitní bezcenné 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
se sadou možností /noimplicitbaseless
, když se TFVC pokusí sloučit dvě větve, při pokusu o vrácení změn se soubory a.txt vytvoří konflikt oboru názvů. 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 branch2.
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 branch2.
c:\projects>tf merge /version:C137 branch1 branch2 /recursive
Následující příklad vytiskne seznam sad změn v větvi1, které nebyly sloučeny do branch2.
c:\projects>tf merge /candidate branch1 branch2 /recursive
Následující příklad vytiskne seznam sad změn v branch2, které nebyly sloučeny zpět do větev1.
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 branch2.
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 branch2.
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive
Související články
- řešení konfliktů správy verzí Team Foundation
- použití příkazů pro správu verzí Team Foundation
- příkazu
Branch - příkazu
Merges - větvení a slučování