Opdracht Samenvoegen (Team Foundation-versiebeheer)
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Met de tf merge
opdracht worden wijzigingen van de ene vertakking in een andere vertakking toegepast in Team Foundation Version Control (TFVC).
Notitie
De resultaten van deze opdracht worden pas weergegeven in de Azure DevOps-server als u een incheckbewerking uitvoert. Zie Code ontwikkelen en wachtende wijzigingen beheren voor meer informatie.
Vereisten
Als u de merge
opdracht wilt gebruiken, moet de machtiging Uitchecken zijn ingesteld op Toestaan voor de werkruimtemap die destination
de map Bevat en moet de machtiging Lezen zijn ingesteld op Toestaan voor de werkruimtemap die de source
map bevat. Zie Standaard TFVC-machtigingen voor meer informatie.
Syntaxis
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
Parameters
Argumenten
Argument
Beschrijving
<versionspec>
Biedt een waarde, zoals C2
voor de /version
optie. Zie Team Foundation-versiebeheeropdrachten gebruiken voor meer informatie over hoe TFVC een versiespecificatie parseert om te bepalen welke items binnen het bereik vallen.
<source>
Hiermee geeft u het bestand of de map die moet fungeren als de bron van de samenvoegbewerking.
<destination>
Hiermee geeft u het bestand of de map die moet fungeren als de bestemming van de samenvoegbewerking.
<username>
Biedt een waarde voor de /login
optie. U kunt een username
waarde opgeven als of DOMAIN\username
username
.
Opties
Optie
Beschrijving
/recursive
Komt overeen met de source
itemspecificatie in de huidige map en eventuele submappen.
/force
Negeert de samenvoeggeschiedenis en voegt de opgegeven wijzigingen van de bron samen in het doel, zelfs als sommige of al deze wijzigingen eerder zijn samengevoegd.
/candidate
Hiermee wordt een lijst afgedrukt met alle wijzigingensets in de bron die nog niet zijn samengevoegd in het doel. De lijst moet de wijzigingenset-id bevatten die niet is samengevoegd en andere basisinformatie over die wijzigingenset. Een sterretje voor een bepaald resultaat geeft aan dat het gedeeltelijk is samengevoegd, wat betekent dat sommige wijzigingen in de wijzigingenset zijn samengevoegd en dat andere wijzigingen niet zijn samengevoegd.
/discard
Hiermee wordt de samenvoegbewerking niet uitgevoerd, maar wordt de samenvoeggeschiedenis bijgewerkt om bij te houden dat de samenvoeging heeft plaatsgevonden. Hiermee wordt een wijzigingenset verwijderd die niet wordt gebruikt voor een bepaalde samenvoeging.
/version
Voor een selectieve samenvoeging geeft deze optie het bereik op dat moet worden samengevoegd in de bestemming. Voor een inhaalsamenvoeging geeft deze parameter de versie op waarvoor alle niet-samengevoegde wijzigingen moeten worden samengevoegd.
Voor een selectieve samenvoeging geeft het versiebereik de begin- en eindpunten aan van de set wijzigingen die moeten worden samengevoegd. Als u bijvoorbeeld probeert de versie 4~6
samen te voegen, worden de wijzigingensets 4, 5 en 6 samengevoegd.
/lock
Hiermee geeft u een vergrendelingstype op of verwijdert u een vergrendeling van een item. Zie Vergrendelingstypen begrijpen voor meer informatie.
Vergrendelingsopties:
None
: Plaatst geen vergrendeling op een item en verwijdert bestaande vergrendeling van het item.Checkin
: Andere gebruikers kunnen de opgegeven items uitchecken, maar ze kunnen geen revisies inchecken voor vergrendelde bestanden totdat u de vergrendeling loslaat door een check-in uit te voeren. Als andere gebruikers een van de opgegeven items hebben vergrendeld, mislukt de vergrendelingsbewerking.Checkout
: Hiermee voorkomt u dat gebruikers een van de opgegeven items inchecken of uitchecken totdat u de vergrendeling expliciet loslaat. Als andere gebruikers een van de opgegeven items hebben vergrendeld of als er bestaande wijzigingen in behandeling zijn voor een item, mislukt de vergrendelingsbewerking.
/preview
Toont een voorbeeld van de samenvoegbewerking.
/baseless
Voert een samenvoeging uit zonder basisversie. Dat wil gezegd, stelt de gebruiker in staat bestanden en mappen samen te voegen die geen samenvoegrelatie hebben. Na een basisloze samenvoeging bestaat er een samenvoegrelatie en hoeven toekomstige samenvoegingen niet baseless te zijn.
Notitie
Met basisloze samenvoegingen kunnen geen bestanden in het doel worden verwijderd. U kunt dergelijke wijzigingen handmatig overdragen.
/noimplicitbaseless
Hiermee geeft u op dat TFVC geen impliciete basisloze samenvoeging uitvoert tussen twee items met dezelfde relatieve naam in twee niet-gerelateerde versiebeheerstructuren.
/nosummary
Hiermee wordt de samenvatting van conflicten, fouten en waarschuwingen weggelaten.
/noprompt
Onderdrukt eventuele aanwijzingen voor invoer van u.
/conservative
Resulteert in meer conflicten wanneer u de ene vertakking samenvoegt naar een andere.
/format
Hiermee geeft u de notaties van samenvoegingsconflicten op:
Brief
(standaard): geeft alleen een overzicht van het totale aantal conflicten, waarschuwingen en fouten.Detailed
: Geeft niet alleen een overzicht van het totale aantal conflicten, waarschuwingen en fouten, maar bevat ook details over elk conflict.
Notitie
Deze optie is alleen van toepassing wanneer de uitvoer een samenvatting van conflicten bevat. De samenvatting kan niet worden weergegeven als de /nosummary
optie wordt gebruikt of als de samenvoeging minder dan 10 conflicten, waarschuwingen en fouten veroorzaakt.
/login
Hiermee geeft u de gebruikersnaam en het wachtwoord op om de gebruiker te verifiëren met Azure DevOps.
Opmerkingen
U kunt de merge
opdracht van het tf
opdrachtregelprogramma gebruiken om wijzigingen in een bestaande bronvertakking toe te passen op een bestaande doelvertakking. U kunt een afzonderlijke revisie of een volledige wijzigingenset samenvoegen met de doelbranch. U kunt wijzigingen van de bron samenvoegen naar de doelbranch of van de bestemming naar de bronbranch.
merge
Met de opdracht kunt u ook query's uitvoeren op wijzigingen in een bronbranch die niet naar de doelbranch zijn gemigreerd. Met de opdracht kunt u ook aangeven dat bepaalde wijzigingen nooit van de bron naar de bestemming worden samengevoegd en niet meer als kandidaten voor een samenvoegbewerking moeten worden weergegeven.
Zie Team Foundation-versiebeheeropdrachten gebruiken voor meer informatie over het gebruik van het tf
opdrachtregelprogramma.
Basisloze samenvoeging
Gebruik basisloze samenvoeging om items die niet rechtstreeks van elkaar zijn vertakt, samen te voegen. Als u een basisloze samenvoeging wilt uitvoeren, moet u de tf merge
opdracht gebruiken. Wanneer u een basisloze samenvoeging uitvoert, heeft TFVC geen informatie over de relatie van de bestanden in de vertakkingen. Bij een basisloze samenvoeging moet u handmatige conflictoplossing uitvoeren. Nadat u de basisloze samenvoeging hebt uitgevoerd en eventuele conflicten hebt opgelost, registreert TFVC de samenvoeggeschiedenis en brengt een relatie tot stand tussen de mappen en bestanden.
Wanneer u uitvoert, voert tf merge
TFVC een impliciete basisloze samenvoeging uit tussen items met dezelfde relatieve naam in twee eerder gerelateerde versiebeheerde structuren. U kunt bijvoorbeeld de gerelateerde vertakkingen $SRC
en $TGT
. Beide vertakkingen bevatten een niet-gerelateerd bestand met de naam a.txt. Wanneer u uitvoert tf merge
, brengt TFVC een relatie tot stand tussen de twee a.txt bestanden als de twee bestanden hetzelfde zijn, FIPS-compatibele versleuteling is uitgeschakeld en het bronbestand niet is gerelateerd aan een ander bestand in het doel.
Als u met de optieset uitvoert tf merge
en TFVC probeert de twee vertakkingen samen te voegen, maken de twee a.txt bestanden een naamruimteconflict wanneer u de wijzigingen probeert in te checken./noimplicitbaseless
Als u het conflict wilt oplossen, moet u de naam van een van de bestanden wijzigen.
Voorbeelden
In het volgende voorbeeld worden wijzigingen van MyFile_beta1 samengevoegd die niet zijn samengevoegd in MyFile_RTM.
c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive
In het volgende voorbeeld worden wijzigingenset 137 samengevoegd in branch2.
c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive
In het volgende voorbeeld worden alle wijzigingensets samengevoegd tot wijzigingenset 137 in branch2.
c:\projects>tf merge /version:C137 branch1 branch2 /recursive
In het volgende voorbeeld wordt een lijst afgedrukt met de wijzigingensets in branch1 die niet zijn samengevoegd in branch2.
c:\projects>tf merge /candidate branch1 branch2 /recursive
In het volgende voorbeeld wordt een lijst afgedrukt met wijzigingensets in branch2 die niet zijn samengevoegd in branch1.
c:\projects>tf merge /candidate branch2 branch1 /recursive
In het volgende voorbeeld worden wijzigingenset 137 genegeerd als kandidaat voor samenvoegen in branch2.
c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive
In het volgende voorbeeld worden alle wijzigingensets tot aan wijzigingenset 137 verwijderd als kandidaten voor samenvoegen in branch2.
c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive