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).
Kommentar
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 merge
kommandot måste du ha behörigheten Checka ut till Tillåt för arbetsytans mapp som innehåller destination
, och du måste ha läsbehörigheten inställd på Tillåt för arbetsytans mapp 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>
Ger ett värde, till exempel 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 alternativet ett värde /login
. Du kan ange ett username
värde som antingen DOMAIN\username
eller username
.
Alternativ
Alternativ
Beskrivning
/recursive
Matchar objektspecifikationen source
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 utfö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.
Kommentar
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 bara 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.
Kommentar
Det här alternativet gäller endast när utdata innehåller en sammanfattning av konflikter. Sammanfattningen kan inte visas om /nosummary
alternativet används eller om sammanfogningen 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.
Kommentarer
Du kan använda merge
kommandot för tf
kommandoradsverktyget 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 merge
kommandot 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 tf
kommandoradsverktyget 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 tf merge
kommandot . 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 slå samman relaterade grenar $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 är inte relaterad till någon annan fil i målet.
Om du kör tf merge
med alternativuppsättningen /noimplicitbaseless
, när TFVC försöker sammanfoga de två grenarna, skapar de två a.txt-filerna en namnområdeskonflikt när du försöker checka in ändringarna. 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 till 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 de ändringsuppsättningar i branch1 som inte har sammanfogats till 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 tillbaka till branch1.
c:\projects>tf merge /candidate branch2 branch1 /recursive
I följande exempel ignoreras ändringsuppsättningen 137 som kandidat för sammanslagning till 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 till branch2.
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive