Freigeben über


Rollbackbefehl (Team Foundation Version Control)

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

Visual Studio 2019 | Visual Studio 2022-

Sie können den Befehl "Team Foundation Version Control(TFVC)" tf rollback verwenden, um die Auswirkungen einer oder mehrerer Änderungenets auf ein oder mehrere versionsgesteuerte Elemente zurückzurufen. Mit diesem Befehl werden die Changesets nicht aus dem Versionsverlauf eines Elements entfernt. Stattdessen erstellt dieser Befehl eine Reihe ausstehender Änderungen in Ihrem Arbeitsbereich, die die Auswirkungen der von Ihnen angegebenen Änderungen aufheben.

Voraussetzungen

Wenn Sie diesen Befehl verwenden möchten, müssen Sie die berechtigungen "Lesen", auschecken und Berechtigungen " Einchecken" auf "zulassen" festlegen. Weitere Informationen finden Sie unter Standard-TFVC-Berechtigungen.

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]]

Parameter

Argumente

Argument

Beschreibung

<ChangesetFrom>~<ChangesetTo>

Verwenden Sie dieses Argument mit der Option /changeset, um die Änderungssets anzugeben, die Sie zurücksetzen möchten. Sie können die Changesets auf folgende Weise angeben:

  • Ein einzelnes Changeset, z. B. /changeset:C11
  • Ein Bereich von Changesets, z. B. /changeset:C7~C20
  • Ein Datum, z. B. /changeset:D09/30/09
  • Ein Datumsbereich, z. B. /changeset:D09/23/09~D10/07/09
  • Das neueste Changeset, /changeset:Tip oder /changeset:T

<ItemSpec>

Verwenden Sie dieses Argument, um ein oder mehrere Elemente anzugeben, die Sie zurücksetzen möchten. Wenn Sie die Option /toversion verwenden, müssen Sie dieses Argument angeben.

Weitere Informationen dazu, wie TFVC Elementspezifikationen analysiert, finden Sie unter Verwenden von Team Foundation-Versionssteuerungsbefehlen.

Anmerkung

Sie können mehrere itemspec Argumente angeben.

<VersionSpec>

Der vom Benutzer bereitgestellte Wert sowohl für die option /version als auch für die option /toversion.

Verwenden Sie dieses Argument mit der Option /toversion, um eine Datei in einem bestimmten Änderungssatz in ihren Zustand zurückzugeben. Sie können die Version wie folgt angeben:

  • Ein einzelnes Changeset, z. B. /toversion:C32
  • Ein Datum um Mitternacht, z. B. /toversion:D06/19/09
  • Ein Datum und eine Uhrzeit, z. B. /toversion:D06/19/09T14:32
  • Eine Bezeichnung, z. B. /toversion:LTestLabel
  • Die Version im Arbeitsbereich, die dem aktuellen Verzeichnis zugeordnet ist, /toversion:W
  • Die Version in einem bestimmten Arbeitsbereich, z. B. /toversion:WResolveRIConflicts;AKerry

Weitere Informationen dazu, wie TFVC die versionspecanalysiert, finden Sie unter Verwenden von Steuerelementbefehlen für die Team Foundation-Version.

Optionen

Option

Beschreibung

/changeset

Verwenden Sie diese Option, um mindestens ein bestimmtes Änderungsset anzugeben, das Sie negieren möchten.

/keepmergehistory

Diese Option wirkt sich nur aus, wenn mindestens eine der Änderungen, die Sie zurücksetzen, eine Verzweigung oder Zusammenführen Ändern enthalten. Geben Sie diese Option an, wenn zukünftige Zusammenführungen zwischen derselben Quelle und demselben Ziel vorgenommen werden sollen, um die Änderungen auszuschließen, die Sie zurücksetzen.

/lock

Geben Sie diese Option an, um zu verhindern, dass andere Benutzer Elemente einchecken oder auschecken, bis Sie das Rollback aller zugehörigen Änderungen abgeschlossen haben. Weitere Informationen finden Sie unter Grundlegendes zu Sperrtypen.

Sperroptionen:

  • None. Vorgabe. Es wird keine Sperre angewendet. Wenn die Datei, die Sie zurücksetzen, gesperrt wurde, wird mit dieser Option die Sperre entfernt.
  • Checkin. Sperrt ein Element, bis Sie die Sperre freigeben, indem Sie ein Einchecken durchführen. Andere Benutzer können das angegebene Element auschecken, aber die Benutzer können keine Überarbeitungen einchecken, bis die Sperre entfernt wird. Sie können eine Datei, die bereits gesperrt ist, nicht sperren.
  • Checkout. Verhindert, dass Benutzer ein gesperrtes Element einchecken oder auschecken, bis Sie die Sperre durch Einchecken entfernen.

/login

Informationen zu dieser Option finden Sie unter Verwenden von Optionen, um zu ändern, wie ein Befehl.

/noprompt

Verwenden Sie diese Option, um dialogfelder zu unterdrücken, die sonst während dieses Vorgangs angezeigt werden.

/recursive

Geben Sie diese Option an, wenn der Vorgang Elemente in Unterordner einschließen soll.

/toversion

Geben Sie diese Option an, um eine Datei in einem bestimmten Änderungssatz in ihren Zustand zurückzuverwenden. Wenn Sie diese Option verwenden, verwerfen Sie die Auswirkung aller Änderungenets, die seit der von Ihnen angegebenen Version angewendet wurden.

/version

Gibt die aktuelle Version der Dateien und Ordner an, die Sie zurücksetzen möchten.

Bemerkungen

Mit dem Befehl tf rollback wird die Auswirkung der einzelnen Von Ihnen angegebenen Änderungen für jedes von Ihnen angegebene Element aufgehoben. In der folgenden Tabelle wird aufgeführt, wie der Vorgang jede Art von Änderung negiert.

Art der Änderung zurückgesetzt Art der Rollbackänderung
Zweighinzufügen oder löschen
bearbeiten bearbeiten
Codierung Codierung
umbenennen/verschieben umbenennen/verschieben
löschen rückgängigmachen
zusammenführen Ändern Sie diese Änderung, um die Änderungen in der aktuellen Verzweigung zu verwerfen.

Die folgende Liste enthält einige Beispiele für Änderungen, die aus dem Befehl rollback resultieren:

  • Sie führen ein Rollback eines Änderungssets durch, in dem ein Änderung hinzugefügt wurde. Durch den Rollbackvorgang wird ein Rollback und eine Änderung gelöscht.

  • Sie führen ein Rollback von Changeset 521 durch, in dem eine Bearbeitung Änderung aufgetreten ist. Durch den Rollbackvorgang wird ein Rollback Änderung und eine änderung Bearbeitung bewirkt, die die Bearbeitung Änderung in Changeet 521 negiert.

  • In Changeset 132 haben Sie von $/BranchA/File1.txt zu $/BranchB/File1.txtzusammengeführt. Die Änderungen in dieser Zusammenführung enthalten Änderungen Änderungen in den Änderungssätzen 92 und 104 bearbeiten. In Changeset 162 führen Sie ein Rollback von Changeset 132 durch, das zu einer Rollback- Änderung und einer Änderung Änderung in $/BranchB/File1.txt führt, die die Bearbeitung Änderungen in Änderungssätzen 92 und 104 abhebt.

Ausgangscodes

Nach dem Ausführen des Befehls tf rollback wird ein Exitcode aus der folgenden Tabelle angezeigt.

Exit-Code Beschreibung
0 Der Vorgang hat alle Elemente erfolgreich zurückgesetzt.
1 Der Vorgang hat mindestens ein Element erfolgreich zurückgesetzt, konnte jedoch ein oder mehrere Elemente nicht rückgängig gemacht werden.
100 Der Vorgang konnte keine Elemente zurücksetzen.

Beispiele

Im folgenden Beispiel wird die Auswirkung von Changeset 23 auf alle Elemente, die in diesem Changeet geändert wurden, aufgehoben:

c:\workspace> tf rollback /changeset:C23

Im folgenden Beispiel wird die Auswirkung von Changeset 23 auf die Datei a.txtaufgehoben:

c:\workspace> tf rollback /changeset:C23 a.txt

Im folgenden Beispiel wird der Inhalt a.txt so geändert, dass er mit der Version übereinstimmt, die mit Changeset 23 eingecheckt wurde:

c:\workspace> tf rollback /toversion:C23 a.txt

Im folgenden Beispiel wird der Inhalt von OurTeamProject- so geändert, dass es mit dem letzten Änderungssatz übereinstimmt, der am 31. August 2009 angewendet wurde oder bevor Mitternacht angewendet wurde:

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Beispieloption /keepmergehistory

Wenn Sie ein Rollback für ein Changeet ausführen, das eine Verzweigung oder eine Zusammenführungsänderung enthält, möchten Sie in der Regel, dass zukünftige Zusammenführungen zwischen derselben Quelle und demselben Ziel zusammengeführt werden, um diese Änderungen einzuschließen. Sie können jedoch die Option /keepmergehistory verwenden, wenn Sie zukünftige Zusammenführungen zwischen derselben Quelle und demselben Ziel verwenden möchten, um Änderungenets auszuschließen, die in einem früheren Zusammenführungsvorgang enthalten waren. Zum Beispiel:

  1. Am 30. Juni 2009 führen Sie eine vollständige Zusammenführung aller Elemente von $/BranchA/ zu $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    Sie überprüfen diesen Seriendruck als Teil von Changeset 292.

  2. Im Juli nehmen Sie mehrere Änderungen $/BranchA/Util.csvor. Diese Änderungen sind in den Änderungssätzen 297, 301 und 305 enthalten.

  3. Am 1. August 2009 führen Sie $/BranchA/Util.cs mit $/BranchB/Util.cszusammen.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    Sie überprüfen die Änderung im Rahmen von Changeset 314. Das Ergebnis dieses Vorgangs ist, dass die Bearbeitungen, die Sie in den Änderungenets 297, 301 und 305 an $/BranchA/Util.cs vorgenommen haben, jetzt auch auf $/BranchB/Util.csangewendet werden.

  4. Eine Woche später stellen Sie fest, dass die Bearbeitungen, die Sie an $/BranchA/Util.cs im Juli vorgenommen haben, nicht für $/BranchB/Util.csgeeignet sind. Sie können den Befehl rollback verwenden, um diese Änderungen zu verwerfen. Wenn Sie den Befehl rollback verwenden, um ein Rollback eines Zusammenführens Ändern oder einer Verzweigung Änderung vorzunehmen, haben Sie eine Entscheidung.

    • Wenn Sie möchten, dass die Änderungen, die Sie an $/BranchA/Util.cs vorgenommen haben, im Juli erneut auf $/BranchB/Util.cs in zukünftigen Zusammenführungen angewendet werden sollen, geben Sie den folgenden Befehl ein:

      c:\workspace> tf rollback /changeset:314
      
    • Wenn Sie möchten, dass die Änderungen, die Sie an $/BranchA/Util.cs im Juli vorgenommen haben, nie erneut auf $/BranchB/Util.cs in zukünftigen Zusammenführungen angewendet werden sollen, geben Sie den folgenden Befehl ein:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Einige Wochen später führen Sie $/BranchA/ in $/BranchB/zusammen.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Wenn Sie die Option /keepmergehistory beim Zurücksetzen nicht angegeben haben, gilt die Zusammenführung Änderung für $/BranchB/Util.cs alle Änderungenets, die auf $/BranchA/Util.cs seit Changeset 292 angewendet wurden, einschließlich Änderungenets 297, 301 und 305. Mit anderen Worten: Durch den Seriendruck wird die Rollbackänderung rückgängig.

    • Wenn Sie die Option "/keepmergehistory" beim Zurücksetzen hinzugefügt haben, gilt der Zusammenführungsvorgang für $/BranchB/Util.cs alle Änderungenets, die auf $/BranchA/Util.cs seit Changeset 292 angewendet wurden, mit Ausnahme von Changesets 297, 301 und 305. Mit anderen Worten, die Zusammenführung macht die Rollbackänderung nicht rückgängig. Daher entspricht der Inhalt von BranchA- möglicherweise nicht dem Inhalt von BranchB-.