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 konflikter på sidan Väntande ändringar i Team Explorer.
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.
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:
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 eller välj listrutepilen bredvid ikonen och välj sedan ett kommando. Fönstret Diff öppnas.
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.
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:
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:
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:
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:
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.
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 .