Sammanslagningskommando (Versionskontroll för Team Foundation)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Kommandot tf merge
tillämpar ändringar från en gren till en annan i Team Foundation Version Control (TFVC).
Not
Resultatet av det här kommandot återspeglas inte på Azure DevOps-servern förrän du utför en incheckningsåtgärd. Mer information finns i Utveckla kod och hantera väntande ändringar.
Förutsättningar
Om du vill använda kommandot merge
har du Checka ut behörighet inställd på Tillåt för arbetsytemappen som innehåller destination
och har behörigheten Läs inställd på Tillåt för arbetsytemappen som innehåller source
. Mer information finns i TFVC-standardbehörigheter.
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
Parametrar
Argument
Argument
Beskrivning
<versionspec>
Innehåller ett värde som C2
för alternativet /version
. Mer information om hur TFVC parsar en versionsspecifikation för att avgöra vilka objekt som ligger inom dess omfång finns i Använda Team Foundation-versionskontrollkommandon.
<source>
Anger vilken fil eller mapp som ska fungera som källa för kopplingen.
<destination>
Anger vilken fil eller mapp som ska fungera som mål för kopplingen.
<username>
Ger ett värde till alternativet /login
. Du kan ange ett username
värde som antingen DOMAIN\username
eller username
.
Alternativ
alternativ
Beskrivning
/recursive
Matchar source
objektspecifikationen i den aktuella katalogen och eventuella undermappar.
/force
Ignorerar sammanslagningshistoriken och sammanfogar de angivna ändringarna från källan till målet, även om vissa eller alla dessa ändringar har sammanfogats tidigare.
/candidate
Skriver ut en lista över alla ändringsuppsättningar i källan som ännu inte har sammanfogats till målet. Listan bör innehålla det ändringsuppsättnings-ID som inte har sammanfogats och annan grundläggande information om den ändringsuppsättningen. En asterisk för ett givet resultat anger att den delvis sammanfogades, vilket innebär att vissa ändringar i ändringsuppsättningen har sammanfogats och att andra ändringar inte har sammanfogats.
/discard
Utför inte sammanslagningsåtgärden, men uppdaterar sammanslagningshistoriken för att spåra att sammanfogningen inträffade. Detta tar bort en ändringsuppsättning från att användas för en viss sammanslagning.
/version
För en selektiv sammanslagning anger det här alternativet det intervall som ska sammanfogas till målet. För en sammanslagning anger den här parametern den version innan alla osammanslagna ändringar ska sammanfogas.
För en selektiv sammanslagning anger versionsintervallet start- och slutpunkterna för den uppsättning ändringar som ska sammanfogas. Om du till exempel försöker sammanfoga version 4~6
sammanfogas ändringsuppsättningarna 4, 5 och 6.
/lock
Anger en låstyp eller tar bort ett lås från ett objekt. Mer information finns i Förstå låstyper.
Låsalternativ:
None
: Placerar inte ett lås på ett objekt och tar bort alla befintliga lås från objektet.Checkin
: Andra användare kan checka ut de angivna objekten, men de kan inte checka in revisioner av låsta filer förrän du släpper låset genom att göra en incheckning. Om några andra användare har låst något av de angivna objekten misslyckas låsåtgärden.Checkout
: Hindrar användare från att checka in eller checka ut något av de angivna objekten tills du uttryckligen släpper låset. Om några andra användare har låst något av de angivna objekten, eller om det finns befintliga väntande ändringar mot ett objekt, misslyckas låsåtgärden.
/preview
Visar en förhandsgranskning av kopplingen.
/baseless
Utför en sammanslagning utan basversion. Det innebär att användaren kan sammanfoga filer och mappar som inte har en kopplingsrelation. Efter en grundlös sammanslagning finns det en kopplingsrelation och framtida sammanslagningar behöver inte vara grundlösa.
Not
Grundlösa sammanslagningar kan inte ta bort filer i målet. Du kan överföra sådana ändringar manuellt.
/noimplicitbaseless
Anger att TFVC inte kommer att göra en implicit grundlös sammanslagning mellan två objekt som har samma relativa namn i två icke-relaterade versionskontrollträd.
/nosummary
Utelämnar sammanfattning av konflikter, fel och varningar.
/noprompt
Undertrycker alla uppmaningar om indata från dig.
/conservative
Resulterar i fler konflikter när du sammanfogar en gren till en annan.
/format
Anger formaten för att sammanfatta sammanslagningskonflikter:
-
Brief
(standard): Sammanfattar endast det totala antalet konflikter, varningar och fel. -
Detailed
: Sammanfattar inte bara det totala antalet konflikter, varningar och fel, utan visar även information om varje konflikt.
Not
Det här alternativet gäller endast när utdata innehåller en sammanfattning av konflikter. Sammanfattningen kan inte visas om alternativet /nosummary
används eller om kopplingen orsakade färre än 10 konflikter, varningar och fel.
/login
Anger användarnamn och lösenord för att autentisera användaren med Azure DevOps.
Anmärkningar
Du kan använda kommandot merge
för kommandoradsverktyget tf
för att tillämpa ändringar i en befintlig källgren på en befintlig målgren. Du kan sammanfoga en enskild revision eller en fullständig ändringsuppsättning till målgrenen. Du kan sammanfoga ändringar från källan till målgrenen eller från målet till källgrenen.
Med kommandot merge
kan du också fråga efter ändringar i en källgren som inte har migrerats till målgrenen. Med kommandot kan du också ange att vissa ändringar aldrig kommer att sammanfogas från källan till målet och inte längre ska visas som kandidater för en sammanslagningsåtgärd.
Mer information om hur du använder kommandoradsverktyget tf
finns i Använda Team Foundation-versionskontrollkommandon.
Grundlös sammanslagning
Använd grundlös sammanslagning för att sammanfoga objekt som inte är direkt förgrenade från varandra. Om du vill göra en grundlös sammanslagning måste du använda kommandot tf merge
. När du gör en grundlös sammanslagning har TFVC ingen information om relationen mellan filerna i grenarna. I en grundlös sammanslagning måste du utföra manuella konfliktlösningar. När du har slutfört den grundlösa sammanfogningen och löst eventuella konflikter registrerar TFVC sammanslagningshistoriken och upprättar en relation mellan mapparna och filerna.
När du kör tf merge
gör TFVC en implicit grundlös sammanslagning mellan objekt som har samma relativa namn i två tidigare relaterade versionskontrollerade träd. Du kanske till exempel vill sammanfoga de relaterade grenarna $SRC
och $TGT
. Båda grenarna innehåller en orelaterad fil med namnet a.txt. När du kör tf merge
upprättar TFVC en relation mellan de två a.txt filerna om de två filerna är desamma, FIPS-kompatibel kryptering inaktiveras och källfilen inte är relaterad till någon annan fil i målet.
Om du kör tf merge
med /noimplicitbaseless
alternativuppsättningen skapar de två a.txt filerna en namnområdeskonflikt när du försöker checka in ändringarna när TFVC försöker slå samman de två grenarna. För att lösa konflikten måste du byta namn på en av filerna.
Exempel
I följande exempel sammanfogas ändringar från MyFile_beta1 som inte har sammanfogats i MyFile_RTM.
c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive
I följande exempel sammanfogas ändringsuppsättningen 137 i branch2.
c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive
I följande exempel sammanfogas alla ändringar upp till ändringsuppsättningen 137 till branch2.
c:\projects>tf merge /version:C137 branch1 branch2 /recursive
I följande exempel skrivs en lista över ändringarna i branch1 som inte har sammanfogats i branch2.
c:\projects>tf merge /candidate branch1 branch2 /recursive
I följande exempel skrivs en lista över ändringsuppsättningar i branch2 som inte har sammanfogats i branch1.
c:\projects>tf merge /candidate branch2 branch1 /recursive
I följande exempel ignoreras ändringsuppsättningen 137 som kandidat för sammanslagning i branch2.
c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive
I följande exempel ignoreras alla ändringar upp till ändringsuppsättning 137 som kandidater för sammanslagning i branch2.
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive