Å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 har du behörigheterna Read, Checka utoch Checka in 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 alternativet /changeset
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.
Not
Du kan ange mer än ett itemspec
argument.
<VersionSpec>
Det användardefinierade värdet för både alternativet /version
och alternativet /toversion
.
Använd det här argumentet med alternativet /toversion
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 versionspec
finns i 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 sammanslagning ändras. 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änd 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.
Anmärkningar
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ägga till, greneneller ta bort | ta bort |
redigera | redigera |
kodning | kodning |
byta namn på/flytta | byta namn på/flytta |
ta bort | ta bort |
slå samman | Ändra som negerar de ändringar som sammanfogas i den aktuella grenen. |
Följande lista innehåller några exempel på ändringar som följer av kommandot rollback
:
Du återställer en ändringsuppsättning där en lägga till ändring inträffade. Återställningsåtgärden orsakar en återställning ändring och en ta bort ändring.
Du återställer ändringsuppsättningen 521 där en redigera ändring inträffade. Återställningsåtgärden orsakar en återställning ändring och en redigera ändring som negerar redigera ändring i ändringsuppsättning 521.
I ändringsuppsättning 132 sammanfogade du från $/BranchA/File1.txt till $/BranchB/File1.txt. Ändringarna i den sammanslagningen inkluderade redigera ändringar i ändringsuppsättningarna 92 och 104. I ändringsuppsättning 162 återställer du ändringsuppsättningen 132, vilket resulterar i en återställning ändring och en redigera ändras till $/BranchB/File1.txt som negerar redigera ändringar i ändringsuppsättningarna 92 och 104.
Slutkoder
En slutkod från följande tabell visas när du har kört kommandot tf rollback
.
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 alternativet /keepmergehistory
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 för att $/BranchA/Util.cs i juli inte är lämpliga för $/BranchB/Util.cs. Du kan använda kommandot
rollback
för att negera dessa ändringar. När du använder kommandotrollback
för att återställa en sammanslagning ändring eller en gren ändra, 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å nytt för $/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å nytt till $/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 alternativet
/keepmergehistory
när du återställde, gäller sammanslagning ändring för $/BranchB/Util.cs alla ändringar som tillämpades på $/BranchA/Util.cs sedan ändringsuppsättning 292, inklusive ändringsuppsättningar 297, 301 och 305. Med andra ord ångras återställningsändringen av sammanfogningen.Om du inkluderade alternativet
/keepmergehistory
när du återställde, gäller sammanslagningsåtgärden för $/BranchB/Util.cs alla ändringar som tillämpades på $/BranchA/Util.cs sedan ändringsuppsättningen 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-.