Dela via


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 destinationoch 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~6sammanfogas ä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 mergegö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 mergeupprä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