Share via


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:

  • Ein einzelnes Changeset

    Beispiel: /changeset:C11

  • Ein Bereich von Changesets

    Beispiel: /changeset:C7~C20

  • Ein Datum

    Beispiel: /changeset:D09/30/09

  • Ein Bereich von Daten

    Beispiel:/changeset:D09/23/09~D10/07/09

  • Das letzte Changeset

    Beispiel: /changeset:Tip oder /changeset:T

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

HinweisHinweis
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:

  • Ein einzelnes Changeset

    Beispiel: /toversion:C32

  • Ein Datum (bei Mitternacht)

    Beispiel: /toversion:D06/19/09

  • Ein Datum und eine Uhrzeit

    Beispiel: /toversion:D06/19/09T14:32

  • Eine Bezeichnung

    Beispiel: /toversion:LTestLabel

  • Die Version im Arbeitsbereich, die dem aktuellen Verzeichnis zugeordnet ist.

    Beispiel: /toversion:W

  • Die Version in einem bestimmten Arbeitsbereich

    Beispiel: /toversion:WResolveRIConflicts;AKerry

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

  • None

    Standard. Es wird keine Sperre angewendet. Wenn die Datei, die Sie zurücksetzen, gesperrt wurde, wird die Sperre mit dieser Option entfernt.

  • Checkin

    Sperrt ein Element, bis die Sperre durch einen Eincheckvorgang aufgehoben wird. Andere Benutzer können die angegebenen Elemente auschecken, doch die Benutzer können Revisionen erst nach Entfernen der Sperre einchecken. Sie können keine Datei sperren, die bereits gesperrt wurde.

  • Checkout

    Verhindert, dass Benutzer ein gesperrtes Element ein- oder auschecken, bis die Sperre durch einen Eincheckvorgang aufgehoben wird.

/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:

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

  2. Im Juli nehmen Sie mehrere Änderungen an "$/BranchA/Util.cs" vor. Diese Änderungen sind in den Changesets 297, 301 und 305 enthalten.

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

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

Befehl Merge

Konzepte

Operationen, die nur über die Befehlszeile verfügbar sind (Team Foundation-Versionskontrolle)

Weitere Ressourcen

Befehle des Befehlszeilenhilfsprogramms "Tf"