Lösa konflikter med Versionskontroll för Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

En fördel med att använda Team Foundation Version Control (TFVC) för att hantera dina filer är att flera personer kan arbeta samtidigt med en fil. En nackdel är att du ibland måste lösa konflikter innan du kan hämta, checka in, ta bort hjälp, slå samman eller återställa dina filer.

Även om det kan vara frustrerande att stöta på konflikter tillhandahåller systemet information och verktyg som hjälper dig att förstå och lösa konflikter.

Du kan också lösa konflikter från kommandoraden med hjälp av kommandot Lös.

Dricks

Om ditt team behöver samarbeta för att lösa ett stort antal konflikter, till exempel efter en sammanslagningsåtgärd i en stor kodbas, kan en offentlig arbetsyta på en delad utvecklingsdator hjälpa. Mer information finns i Skapa och arbeta med arbetsytor.

Lösa konflikter

Du kan använda fönstret Lösa konflikter i Visual Studio för att lösa konflikter som blockerar dig. Öppna fönstret genom att välja Åtgärder>Lösa konfliktersidan Väntande ändringar i Team Explorer.

Skärmbild av hur du använder fönstret Lös konflikter för att lösa konflikter.

Som standard visar fönstret endast de konflikter som orsakas av den senaste åtgärden som du försökte utföra. När fönstret är i det här tillståndet visas ett meddelande som börjar: Sökvägsfilter används. Om du vill visa alla konflikter på din arbetsyta väljer du Hämta alla konflikter. Ett meddelande som börjar med: <N-konflikter> visas.

Om det har gått mycket tid sedan du gjorde ändringar i filer på din arbetsyta kan det ha uppstått nya konflikter. Om du vill uppdatera fönstret Lösa konflikter väljer du Uppdatera.

Skärmbild som visar fönstret Lös konflikter.

Varje konflikt innehåller information och ibland länkar som kan hjälpa dig att lösa det. Om du vill ha mer information kan du välja konflikten och välja något av följande alternativ:

  • Historikikon.Historik för att se filens historik. Om åtgärden som orsakade konflikten är en sammanslagning eller en återställning kan du välja menykontrollen till höger om Historik och sedan välja antingen Källhistorik eller Målhistorik. Mer information finns i Hämta historiken för ett objekt.

  • Jämför-ikonen.Jämför eller välj listrutepilen bredvid ikonen och välj sedan ett kommando. Fönstret Diff öppnas.

  • Kommentarsikon.Kommentera om du vill visa information om alla ändringar som gjorts i den senaste versionen av filen, inklusive vem som gjorde varje ändring och när de gjorde den. Se Visa filändringar med hjälp av kommentar.

Lös alla konflikter automatiskt

Som standard försöker systemet automatiskt lösa alla konflikter automatiskt om du inte inaktiverar det här alternativet. Om du vill inaktivera automatisk autoåterlösning av alla väljer du Verktygsalternativ>. I dialogrutan Alternativ under Source Control>Visual Studio Team Foundation Server avmarkerar du Försök att automatiskt lösa konflikter när de genereras.

Du kan också välja AutoUpplösa alla manuellt i fönstret Lösa konflikter och sedan välja något av följande alternativ:

  • Alla konflikttyper om du vill att systemet ska försöka lösa konflikterna automatiskt med hjälp av alla dess heuristiker.

  • Specifika konflikttyper om du vill att systemet ska försöka lösa konflikterna, men du vill exkludera vissa heuristiker.

    Dialogrutan Välj konflikter att lösa visas. Kontrollera eller avmarkera de alternativ som du vill aktivera eller inaktivera och välj sedan Lös automatiskt.

    Systemet försöker automatiskt lösa de konflikter som visas i fönstret Väntande ändringar . Eventuella konflikter som systemet inte kan lösa finns kvar i fönstret. Du måste lösa dessa konflikter manuellt.

Förstå de automatiska alternativen

Du kan begränsa vilka typer av konflikter som automatiskt löses av alternativet Lös automatiskt alla . När du väljer Lös automatiskt alla och sedan väljer Specifika konflikttyper visas dialogrutan Välj konflikter att lösa.

Skärmbild som visar dialogrutan Välj konflikter att lösa.

Orsak till konflikt

Exempel

Markera kryssruta


Innehållsändringar som inte är i konflikt har gjorts i varje version av en fil.

I filversionen till vänster lades en nolla till i början. I filen till höger lades en tre till i slutet:

Skärmbild av innehållsändringar som inte är i konflikt.

Konflikter med eventuella innehållsändringar

Innehållsändringar gjordes under en get- eller checkin-åtgärd som är unik för arbetsytan, eller under en sammanslagnings- eller återställningsåtgärd som är unik för målversionen.

Posterna fyra och fem lades till i arbetsytan eller målversionen:

Skärmbild av innehållsändringar som är unika för arbetsytan eller målet.

Konflikter med innehållsändringar som endast görs på den lokala arbetsytan eller målgrenen

Innehållsändringar gjordes under get- eller checkin-åtgärden som är unika för servern, eller under en sammanslagnings- eller återställningsåtgärd som är unik för källversionen.

Posterna fyra och fem lades till i servern eller källversionen:

Skärmbild av innehållsändringar som är unika för servern eller källan.

Konflikter med innehållsändringar som endast görs i serverversionen eller källgrenen

En fil bytte namn på servern under en get- eller checkin-åtgärd eller i källgrenen under en sammanslagnings- eller återställningsåtgärd.

Du checkade ut en fil med namnet launch.cs och arbetade med den. Under den tiden checkade någon annan in en ändringsuppsättning som påverkade samma fil. Den ändringsuppsättningen ändrade inte innehållet i filen, men den ändrade namnet på filen till start.cs.

Konflikter som orsakas av namnbyte av fil i serverversionen eller källgrenen

Vanliga innehållsändringar har gjorts som resulterade i identiskt innehåll i varje version. Eller så har du ändrat en fil, checkat in den via en gated check-in build och valt alternativet Bevara väntande ändringar lokalt .

Ändringar i varje version resulterade i identiskt filinnehåll. Ändringarna kan vara till innehållet i filerna, som du ser i följande exempel:

Skärmbild som visar identiska innehållsändringar i båda versionerna.

Konflikter som orsakas av identiska ändringar på servern och arbetsytan

Det här alternativet löser också konflikter som orsakas av alla andra åtgärder, till exempel byta namn på, ta bort, ta bort borttagning och gren, som resulterar i identiska filer.

Dricks

Om du markerar den här kryssrutan löser systemet dessa ändringar när du fortsätter genom att ladda ned serverversionen till din arbetsyta.

AutoMerge markerade konflikter

Om du vill försöka lösa markerade konflikter med hjälp av alla föregående alternativ för automatisk indelning väljer du en eller flera konflikter och väljer sedan AutoMerge.

Dricks

Du kan trycka på och hålla ned ctrl- eller Skift-tangenten för att välja flera konflikter.

Kommentar

Om AutoMerge är inaktiverat måste du lösa konflikterna manuellt.

Lösa markerade konflikter manuellt

Om systemet inte kan lösa en konflikt automatiskt, eller om du vill se till att du förstår vad som ändras, måste du lösa konflikten manuellt. I varje konflikt visar systemet de åtgärder som du kan vidta för att lösa konflikten. Vilka åtgärder som visas beror på konflikttypen och den åtgärd som orsakade konflikten.

Använda fönstret Slå samman

När innehållsändringar i konflikt orsakar en konflikt kan du välja Slå samman ändringar i kopplingsverktyget. Fönstret Slå samman visas.

Skärmbild som visar Sammanfoga ändringar i kopplingsverktyget.

I fönstret Slå samman kan du:

  • Välj layouten för fönstret: Lodrät vy, Vågrät vy eller Blandad vy.
  • Navigera bland skillnaderna och konflikterna.
  • Välj objekt från de vänstra och högra versionerna av filen för att inkludera dem i resultatet.
  • Skriv in mer innehåll i filen i fönstret Resultat .
  • Visa filens historik. Mer information finns i Hämta historiken för ett objekt.
  • Jämför versionerna av filen.
  • Kommentera filen för att se vem som har ändrat vad. Mer information finns i Visa filändringar med hjälp av anteckningar.

När du är nöjd med innehållet i resultatfönstret väljer du Acceptera sammanslagning.

Resultatet av att lösa konflikten visas i fönstret Resultat .