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).

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~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 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 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 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 mergeupprä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