Återställningskommando (Versionskontroll för Team Foundation)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Du kan använda kommandot Team Foundation Version Control (TFVC) tf rollback
för att återställa effekterna av en eller flera ändringsuppsättningar på ett eller flera versionskontrollerade objekt. Det här kommandot tar inte bort ändringsuppsättningarna från ett objekts versionshistorik. I stället skapar det här kommandot en uppsättning väntande ändringar på din arbetsyta som tar bort effekterna av de ändringsuppsättningar som du anger.
Förutsättningar
Om du vill använda det här kommandot måste behörigheterna Läs, Checka ut och Incheckning anges till Tillåt. Mer information finns i TFVC-standardbehörigheter.
Syntax
tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]
Parametrar
Argument
Argument
Beskrivning
<ChangesetFrom>~<ChangesetTo>
Använd det här argumentet med /changeset
alternativet för att ange de ändringsuppsättningar som du vill återställa. Du kan ange ändringsuppsättningarna på följande sätt:
- En enskild ändringsuppsättning, till exempel
/changeset:C11
- Ett antal ändringsuppsättningar, till exempel
/changeset:C7~C20
- Ett datum, till exempel
/changeset:D09/30/09
- Ett datumintervall, till exempel
/changeset:D09/23/09~D10/07/09
- Den senaste ändringsuppsättningen,
/changeset:Tip
eller/changeset:T
<ItemSpec>
Använd det här argumentet om du vill ange ett eller flera objekt som du vill återställa. Om du använder alternativet /toversion
måste du ange det här argumentet.
Mer information om hur TFVC parsar objektspecifikationer finns i Använda Team Foundation-versionskontrollkommandon.
Kommentar
Du kan ange mer än ett itemspec
argument.
<VersionSpec>
Det användardefinierade värdet för både /version
alternativet och alternativet /toversion
.
Använd det här argumentet med /toversion
alternativet för att återställa en fil till dess tillstånd i en specifik ändringsuppsättning. Du kan ange versionen på följande sätt:
- En enskild ändringsuppsättning, till exempel
/toversion:C32
- Ett datum vid midnatt, till exempel
/toversion:D06/19/09
- Ett datum och en tid, till exempel
/toversion:D06/19/09T14:32
- En etikett, till exempel
/toversion:LTestLabel
- Den version på arbetsytan som är mappad till den aktuella katalogen,
/toversion:W
- Versionen på en specifik arbetsyta, till exempel
/toversion:WResolveRIConflicts;AKerry
Mer information om hur TFVC parsar kommandona finns i versionspec
Använda Team Foundation-versionskontrollkommandon.
Alternativ
Alternativ
Beskrivning
/changeset
Använd det här alternativet om du vill ange en eller flera specifika ändringsuppsättningar som du vill ta bort.
/keepmergehistory
Det här alternativet har bara en effekt om en eller flera av de ändringsuppsättningar som du återställer innehåller en gren- eller sammanslagningsändring. Ange det här alternativet om du vill att framtida sammanslagningar mellan samma källa och samma mål ska undanta de ändringar som du återställer.
/lock
Ange det här alternativet för att förhindra att andra användare checkar in eller checkar ut objekt tills du har återställt alla associerade ändringar. Mer information finns i Förstå låstyper.
Låsalternativ:
None
. Standard. Inget lås tillämpas. Om filen som du återställer har låsts tar det här alternativet bort låset.Checkin
. Låser ett objekt tills du släpper låset genom att utföra en incheckning. Andra användare kan checka ut det angivna objektet, men användarna kan inte checka in revisioner förrän låset har tagits bort. Du kan inte låsa en fil som redan är låst.Checkout
. Hindrar användare från att checka in eller checka ut ett låst objekt tills du tar bort låset genom att göra en incheckning.
/login
Information om det här alternativet finns i Använda alternativ för att ändra hur ett kommando fungerar.
/noprompt
Använd det här alternativet om du vill ignorera eventuella dialogrutor som annars skulle visas under den här åtgärden.
/recursive
Ange det här alternativet om du vill att åtgärden ska inkludera objekt i undermappar.
/toversion
Ange det här alternativet om du vill återställa en fil till dess tillstånd i en specifik ändringsuppsättning. När du använder det här alternativet inaktiverar du effekten av alla ändringsuppsättningar som har tillämpats sedan den version som du anger.
/version
Anger den aktuella versionen av de filer och mappar som du vill återställa.
Kommentarer
Kommandot tf rollback
negerar effekten av varje ändringsuppsättning som du anger för varje objekt som du anger. I följande tabell visas hur åtgärden negerar varje typ av ändring.
Typ av ändring återställd | Typ av återställningsändring |
---|---|
lägg till, förgrena eller ta bort borttagning | ta bort |
Redigera | Redigera |
Kodning | Kodning |
byt namn/flytta | byt namn/flytta |
ta bort | Outplåner |
Sammanfoga | Ändra som negerar de ändringar som sammanfogas i den aktuella grenen. |
Följande lista innehåller några exempel på ändringar som är resultatet av rollback
kommandot:
Du återställer en ändringsuppsättning där en tilläggsändring inträffade. Återställningsåtgärden orsakar en återställningsändring och en borttagningsändring .
Du återställer ändringsuppsättningen 521 där en redigeringsändring inträffade. Återställningsåtgärden orsakar en återställningsändring och en redigeringsändring som negerar redigeringsändringen i ändringsuppsättningen 521.
I ändringsuppsättning 132 sammanfogades du från $/BranchA/File1.txt till $/BranchB/File1.txt. Ändringarna i den sammanslagningen inkluderade redigeringsändringar i ändringsuppsättningarna 92 och 104. I ändringsuppsättning 162 återställer du ändringsuppsättningen 132, vilket resulterar i en återställningsändring och en redigeringsändring till $/BranchB/File1.txt som negerar redigeringsändringarna i ändringsuppsättningarna 92 och 104.
Slutkoder
En slutkod från följande tabell visas när du har kört tf rollback
kommandot.
Slutkod | beskrivning |
---|---|
0 | Åtgärden återställde alla objekt. |
1 | Åtgärden återställde minst ett objekt men kunde inte återställa ett eller flera objekt. |
100 | Det gick inte att återställa några objekt. |
Exempel
I följande exempel förnekas effekten av ändringsuppsättning 23 på alla objekt som har ändrats i den ändringsuppsättningen:
c:\workspace> tf rollback /changeset:C23
I följande exempel negerar effekten av changeset 23 på filen a.txt:
c:\workspace> tf rollback /changeset:C23 a.txt
I följande exempel ändras innehållet i a.txt så att det matchar den version som checkades in med ändringsuppsättning 23:
c:\workspace> tf rollback /toversion:C23 a.txt
I följande exempel ändras innehållet i OurTeamProject så att det matchar den senaste ändringsuppsättningen som tillämpades den 31 augusti 2009 eller före midnatt:
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Exempel på /keepmergehistory-alternativ
När du återställer en ändringsuppsättning som innehåller en gren eller en sammanslagningsändring vill du vanligtvis att framtida sammanslagningar mellan samma källa och samma mål ska inkludera dessa ändringar. Du kan dock använda /keepmergehistory
alternativet om du vill att framtida sammanslagningar mellan samma källa och samma mål ska undanta ändringsuppsättningar som omfattades av en tidigare sammanslagningsåtgärd. Till exempel:
Den 30 juni 2009 gör du en fullständig sammanslagning av alla objekt från $/BranchA/ till $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Du checkar in den här kopplingen som en del av ändringsuppsättningen 292.
I juli gör du flera ändringar $/BranchA/Util.cs. Dessa ändringar ingår i ändringsuppsättningarna 297, 301 och 305.
Den 1 augusti 2009 sammanfogar du $/BranchA/Util.cs till $/BranchB/Util.cs.
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Du checkar in ändringen som en del av ändringsuppsättningen 314. Resultatet av den här åtgärden är att de ändringar som du gjorde i ändringsuppsättningarna 297, 301 och 305 till $/BranchA/Util.cs nu också tillämpas på $/BranchB/Util.cs.
En vecka senare inser du att de ändringar som du gjorde i $/BranchA/Util.cs i juli inte är lämpliga för $/BranchB/Util.cs. Du kan använda
rollback
kommandot för att negera dessa ändringar. När du använderrollback
kommandot för att återställa en sammanslagningsändring eller en grenändring har du ett beslut att fatta.Om du vill att de ändringar som du gjorde i $/BranchA/Util.cs i juli ska tillämpas på $/BranchB/Util.cs i framtida sammanslagningar anger du följande kommando:
c:\workspace> tf rollback /changeset:314
Om du vill att de ändringar som du har gjort i $/BranchA/Util.cs i juli aldrig ska tillämpas på $/BranchB/Util.cs i framtida sammanslagningar, anger du följande kommando:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Några veckor senare sammanfogar du $/BranchA/ till $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Om du utelämnade
/keepmergehistory
alternativet när du återställde, gäller sammanslagningsändringen för $/BranchB/Util.cs alla ändringsuppsättningar som har tillämpats på $/BranchA/Util.cs sedan ändringsuppsättningen 292, inklusive ändringsuppsättningarna 297, 301 och 305. Med andra ord ångras återställningsändringen av sammanfogningen.Om du inkluderade
/keepmergehistory
alternativet när du rullade tillbaka gäller sammanslagningsåtgärden för $/BranchB/Util.cs alla ändringsuppsättningar som har tillämpats på $/BranchA/Util.cs sedan ändringsuppsättning 292, exklusive ändringsuppsättningar 297, 301 och 305. Med andra ord ångrar inte sammanfogningen återställningsändringen. Därför kanske innehållet på BranchA inte matchar innehållet på BranchB.