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 , destination
a 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\username
username
.
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 merge
TFVC 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