Dela via


Å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 versionspecfinns 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:

  1. 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.

  2. I juli gör du flera ändringar $/BranchA/Util.cs. Dessa ändringar ingår i ändringsuppsättningarna 297, 301 och 305.

  3. 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.

  4. 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 kommandot rollback 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
      
  5. 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-.