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 versionspec
analysiert, 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:
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.
Im Juli nehmen Sie mehrere Änderungen $/BranchA/Util.csvor. Diese Änderungen sind in den Änderungssätzen 297, 301 und 305 enthalten.
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.
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 Befehlrollback
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
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-.