Rollback-Befehl (Team Foundation-Versionskontrolle)
Sie können diesen Befehl verwenden, um die Effekte von mindestens einem Changeset auf mindestens ein der Versionskontrolle unterliegendes Element zurückzusetzen. Durch diesen Befehl werden die Changesets nicht aus dem Versionsverlauf eines Elements entfernt. Stattdessen wird durch diesen Befehl im Arbeitsbereich ein Satz mit ausstehenden Änderungen erstellt, die die Effekte der angegebenen Changesets negieren.
Erforderliche Berechtigungen
Um den Befehl verwenden zu können, müssen die Berechtigungen Lesen, Auschecken und Einchecken auf Zulassen festgelegt werden. Weitere Informationen hierzu finden Sie unter Team Foundation Server-Berechtigungen.
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
Argument |
Beschreibungen |
---|---|
ChangesetFrom~ChangesetTo |
Verwenden Sie dieses Argument mit der /changeset-Option, um die Changesets anzugeben, die Sie zurücksetzen möchten. Sie haben folgende Möglichkeiten zum Festlegen der Changesets:
|
ItemSpec |
Verwenden Sie dieses Argument, um mindestens ein Element anzugeben, das Sie zurücksetzen möchten. Bei Verwendung der /toversion-Option muss dieses Argument angegeben werden. Weitere Informationen darüber, wie Team Foundation Elementspezifikationen auswertet, finden Sie unter Befehlszeilensyntax (Versionskontrolle).
Hinweis
Sie können mindestens ein Itemspec-Argument angeben.
|
VersionSpec |
Der vom Benutzer bereitgestellte Wert für die /version-Option und die /toversion-Option. Verwenden Sie dieses Argument mit der /toversion-Option, um eine Datei auf ihren Status in einem bestimmten Changeset zurückzusetzen. Sie können die Version folgendermaßen angeben:
Weitere Informationen darüber, wie Team Foundation Versionspezifikationen auswertet, finden Sie unter Befehlszeilensyntax (Versionskontrolle). |
Option |
Beschreibungen |
---|---|
/changeset |
Verwenden Sie diese Option, um mindestens ein bestimmtes Changeset anzugeben, das Sie negieren möchten. |
/keepmergehistory |
Diese Option hat nur Auswirkungen, wenn mindestens eines der Changesets, das Sie zurücksetzen, eine branch- oder merge-Änderung einschließt. Geben Sie diese Option an, wenn Sie möchten, dass zukünftige Zusammenführungen zwischen der gleichen Quelle und dem gleichen Ziel nicht die Änderungen einschließen, die zurückgesetzt werden. Weitere Informationen finden Sie in Beispiel: /keepmergehistory-Option. |
/lock |
Geben Sie diese Option an, um andere Benutzer am Ein- oder Auschecken von Elementen zu hindern, bis alle zugeordneten Änderungen zurückgesetzt werden. Weitere Informationen finden Sie unter Grundlagen von Sperrentypen. Sperroptionen
|
/login |
Weitere Informationen zu dieser Option finden Sie unter Befehlszeilenoptionen. |
/noprompt |
Unterdrückt alle Dialogfelder, die andernfalls im Verlauf dieses Vorgangs erscheinen. |
/recursive |
Geben Sie diese Option an, wenn der Vorgang Elemente in Unterordnern einschließen soll. |
/toversion |
Geben Sie diese Option an, um eine Datei auf den Zustand in einem bestimmten Changeset zurückzusetzen. Wenn Sie diese Option verwenden, negieren Sie den Effekt aller Changesets, die seit Verwendung der angegebenen Version übernommen wurden. |
/version |
Gibt die aktuelle Version der Dateien und Ordner an, für die ein Rollback ausgeführt werden soll. |
Hinweise
Der tf rollback-Befehl negiert den Effekt jedes Changesets, das Sie für jedes angegebene Element angeben. In der folgenden Tabelle ist aufgeführt, wie der Vorgang jede Art von Änderung negiert.
Wenn Sie diese Änderung zurücksetzen... |
...eine Rollbackänderung und die folgende zusätzliche Änderung werden vorgenommen |
---|---|
add, branch oder undelete |
delete |
edit |
edit |
encoding |
encoding |
rename/move |
rename/move |
delete |
undelete |
merge |
Änderung, die negiert, welche Änderungen mit der aktuellen Verzweigung zusammengeführt wurden. |
Die folgende Liste enthält einige Beispiele für Änderungen, die sich aus dem Rollbackbefehl ergeben:
Wenn Sie ein Changeset zurücksetzen, in dem eine add -Änderung aufgetreten ist, verursacht der Rollbackvorgang eine rollback-Änderung und eine delete-Änderung.
Wenn Sie Changeset 521 zurücksetzen, in dem eine edit-Änderung aufgetreten ist, wird durch den Rollbackvorgang eine rollback-Änderung und eine edit-Änderung verursacht, die die aus der edit-Änderung in Changeset 521 resultierenden Änderungen negiert.
In Changeset 132 fand eine Zusammenführung von "$/BranchA/File1.txt" bis "$/BranchB/File1.txt" statt. Die in dieser Zusammenführung enthaltenen Änderungen beinhalteten in den Changesets 92 und 104 edit-Änderungen. In Changeset 162 setzen Sie Changeset 132 zurück, was zu einer rollback-Änderung und einer edit-Änderung an "$/BranchB/File1.txt" führt, in der die Änderungen in den Changesets 92 und 104 negiert werden.
Exitcodes
Die Exitcodes in der folgenden Tabelle werden angezeigt, nachdem Sie den tf rollback-Befehl ausgeführt haben.
Exitcode |
Beschreibungen |
---|---|
0 |
Beim Vorgang wurden alle Elemente zurückgesetzt. |
1 |
Beim Vorgang wurde mindestens ein Element zurückgesetzt. Es konnten jedoch nicht mehrere Elemente zurückgesetzt werden. |
100 |
Beim Vorgang konnten keine Elemente zurückgesetzt werden. |
Beispiele
Im folgenden Beispiel wird die Auswirkung auf Changeset 23 auf alle Elemente, die in diesem Changeset geändert wurden, negiert.
c:\workspace> tf rollback /changeset:C23
Im folgenden Beispiel wird die Auswirkung auf Changeset 23 auf die Datei a.txt negiert.
c:\workspace> tf rollback /changeset:C23 a.txt
Im folgenden Beispiel wird der Inhalt von a.txt geändert, um der Version zu entsprechen, die mit Changeset 23 eingecheckt wurde.
c:\workspace> tf rollback /toversion:C23 a.txt
Im folgenden Beispiel wird der Inhalt von OurTeamProject geändert, um dem letzten Changeset zu entsprechen, das an oder vor Mitternacht am 31. August 2009 übernommen wurde.
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Beispiel: /Keepmergehistory-Option
Wenn Sie ein Changeset zurücksetzen, das eine Verzweigungs- oder Zusammenführungsänderung einschließt, sollen zukünftige Zusammenführungen zwischen der gleichen Quelle und dem gleichen Ziel normalerweise diese Änderungen einschließen. Sie können jedoch die /keepmergehistory-Option verwenden, wenn zukünftige Zusammenführungen zwischen der gleichen Quelle und dem gleichen Ziel keine Changesets einschließen sollen, die bei einer vorangegangenen Zusammenführung berücksichtigt wurden.
Sie können z. B. diesen Befehl in der folgenden Situation verwenden:
Am 30. Juni 2009 führen Sie eine vollständige Zusammenführung aller Elemente von "$/ BranchA" bis "$/ BranchB/" aus:
c:\workspace> tf merge $/BranchA $/BranchB
Sie checken die Zusammenführung als Teil des Changesets 292 ein.
Im Juli nehmen Sie mehrere Änderungen an "$/BranchA/Util.cs" vor. Diese Änderungen sind in den Changesets 297, 301 und 305 enthalten.
Am 1. August 2009 führen Sie "$/BranchA/Util.cs" mit "$/BranchB/Util.cs" zusammen:
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Sie checken die Änderung als Teil des Changesets 314 ein. Das Ergebnis des Vorgangs ist, dass die Änderungen an "$/BranchA/Util.cs" in den Changesets 297, 301 und 305 auch für "$/BranchB/Util.cs" übernommen werden.
Eine Woche später realisieren Sie, dass die Bearbeitungen, die Sie im Juli an $/BranchA/Util.cs gemacht haben, nicht geeignet sind für $/BranchB/Util.cs. Sie können den Rollbackbefehl verwenden, um die Änderungen zu negieren. Wenn Sie den Rollbackbefehl verwenden, um eine merge-Änderung oder eine branch-Änderung zurückzusetzen, müssen Sie eine Entscheidung treffen.
Wenn Sie die Änderungen, die Sie sich im Juli an "$/BranchA/Util.cs" vorgenommen haben, bei künftigen Zusammenführungen für "$/BranchB/Util.cs" erneut übernehmen möchten, geben Sie den folgenden Befehl ein:
c:\workspace> tf rollback /changeset:314
Wenn Sie die Änderungen, die Sie sich im Juli an "$/BranchA/Util.cs" vorgenommen haben, bei künftigen Zusammenführungen für "$/BranchB/Util.cs" nie mehr übernehmen möchten, geben Sie den folgenden Befehl ein:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Einige Wochen später führen Sie $/BranchA/ mit $/BranchB/ zusammen:
c:\workspace> tf merge $/BranchA $/BranchB
Wenn Sie die /keepmergehistory-Option auslassen, werden bei der merge-Änderung für "$/BranchB/Util.cs" alle Changesets übernommen, die seit Changeset 292 für "$/BranchA/Util.cs" übernommen wurden, einschließlich der Changesets 297, 301 und 305. Anders ausgedrückt wird die rollback-Änderung durch eine künftige Zusammenführung rückgängig gemacht.
Wenn Sie die /keepmergehistory-Option einschließen, werden beim Zusammenführungsvorgang für "$/BranchB/Util.cs" alle Changesets übernommen, die seit Changeset 292 für "$/BranchA/Util.cs" übernommen wurden, mit Ausnahme der Changesets 297, 301 und 305. Anders ausgedrückt wird die Rollbackänderung durch eine künftige Zusammenführung nicht rückgängig gemacht. Daher stimmt der Inhalt in BranchA unter Umständen nicht mit dem Inhalt in BranchB überein.
Siehe auch
Referenz
Konzepte
Operationen, die nur über die Befehlszeile verfügbar sind (Team Foundation-Versionskontrolle)