Wie rolle ich einen TFS-Check-in zurück?

92

Ich möchte eine Änderung, die ich kürzlich in TFS vorgenommen habe, rückgängig machen. In Subversion war dies ziemlich einfach. Es scheint jedoch ein unglaublicher Kopfschmerz in TFS zu sein:

Option 1: Vorherige Version abrufen

  1. Manuelles Abrufen der vorherigen Version jeder Datei
  2. Zum Bearbeiten auschecken
  3. Fehler - Die Kaufabwicklung (in VS2008) zwingt mich, die neueste Version zu erhalten

Option 2: Holen Sie sich TFS Power Tools

  1. Laden Sie Team Foundation Power Tools herunter
  2. Geben Sie den Rollback-Befehl von der cmd-Zeile aus
  3. Fehlschlagen - es funktioniert nicht, wenn andere Änderungen ausstehen

Option 3: Änderungen manuell rückgängig machen

  1. Machen Sie meine Änderungen manuell rückgängig und übernehmen Sie dann einen neuen Änderungssatz

Frage

Wie rolle ich zu einem früheren Änderungssatz in TFS zurück?

Jason
quelle
2
VSS hat kein Rollback. Sie haben eine andere Funktion, die zufällig "Rollback" genannt wird, aber in TFS-Begriffen ist es wirklich ein Destroy. (a) Sie können es nur von der Spitze aus tun; Es funktioniert nicht, wenn nach dem Rollback zusätzliche Änderungen eingecheckt wurden. (b) Es entfernt die Änderungen dauerhaft aus der Datenbank
Richard Berg
1
Oh, wie sehr ich mich nach der Leichtigkeit des VSS-Rollbacks sehne.
Greg
2
Ich bin kürzlich auf dieses Problem gestoßen - warum zum Teufel ist es so schwierig, ein Rollback in TFS durchzuführen?
Rollback
2
Dies ist in TFS viel zu schmerzhaft!
Jon Kragh
1
Wechseln Sie zu Mercurial! Ich habe den Job gewechselt und mich an TFS gewöhnt. Ich habe seitdem PowerShell-Skripte geschrieben, damit es über die Befehlszeile wie Hg aussieht.
Sumo

Antworten:

63
  1. Laden Sie die Team Foundation Power Tools herunter und installieren Sie sie .
  2. Öffnen Sie die Visual Studio-Eingabeaufforderung
  3. Navigieren Sie zu dem Verzeichnis im Dateisystem, dem TFS zugeordnet ist. Wenn Sie dies nicht tun, wird beim Versuch, ein Rollback durchzuführen, der Fehler "Arbeitsbereich kann nicht ermittelt werden" angezeigt
  4. Stellen Sie sicher, dass alles andere eingecheckt oder zurückgestellt ist
  5. Führen Sie tfpt rollback aus, um die Schnittstelle aufzurufen.
  6. Wählen Sie die Änderungssätze aus, die Sie zurücksetzen möchten
  7. Checken Sie die neuen Versionen der Dateien ein, die Sie zurückgesetzt haben

Der große Nachteil des Tools besteht darin, dass es alles in Ihrem Arbeitsbereich aktualisieren möchte, bevor Sie es zusammenführen können. Ich habe dieses Problem umgangen, indem ich einen neuen Arbeitsbereich nur für das Rollback erstellt habe, der direkt der Stelle im Quellbaum zugeordnet wurde, an der sich die betroffenen Dateien befanden.

Wenn Sie Hilfe benötigen, um herauszufinden, welche Änderungssätze zurückgesetzt werden sollen, finde ich das Tool zur Codeüberprüfung im kostenlosen Team Foundation Side Kicks- Add-In sehr hilfreich.

Helephant
quelle
Sie können dies auf diese Weise versuchen, aber seien Sie gewarnt, die Tools sind nicht gut dokumentiert, und selbst wenn Sie alle Fehler überwinden können, können Sie möglicherweise ein Rollback durchführen oder nicht. (Ich habe es gerade für 2 Stunden versucht)
alchemistisch
1
Diese Technik hat bei mir funktioniert. Der Vorschlag für den Arbeitsbereich war sehr gut (und ist wichtig, wenn Sie mit einer großen Codebasis arbeiten).
Cloggins
1
Warnung ... es gibt einen Haken 22, wenn Sie nicht übereinstimmende Versionen von TFS und Visual Studio verwenden. Ich verwende VS2010 mit TFS2008 (ein klassischer Fall, in dem die IT nicht mit dev aufholt) und TF.EXE mit VS2010 hat jetzt einen Rollback ... aber es funktioniert nicht gegen TFS2008. Und bei tfpt 2010 wurde das Rollback entfernt, sodass ich es nicht auf die alte Weise tun kann.
Simon Gillbee
7
Der Befehl 'rollback' wurde aus Power Tools für VS2010 entfernt. Jetzt müssen Sie nur noch 'tf rollback' eingeben
Dan
Ab der Version August 2011 von TFS Power Tools müssen Sie zum Zurücksetzen nicht mehr die Befehlszeile verwenden.
Joerage
24

Ihre Lösung Nr. 1 funktioniert: 1. Holen Sie sich manuell die vorherige Version jeder Datei

  1. zum Bearbeiten auschecken

  2. Checken Sie die Datei ein und ignorieren Sie Serveränderungen, wenn Sie dazu aufgefordert werden.

Der Grund, warum dies für Sie fehlgeschlagen ist, liegt darin, dass die Option "Neueste Version des Artikels beim Auschecken abrufen" aktiviert sein muss. Deaktivieren Sie diese Option, indem Sie zu Extras ... Optionen ... Quellcodeverwaltung ... Visual Studio Tema Foundation Server gehen und das Kontrollkästchen "Neueste Version des Elements beim Auschecken abrufen" deaktivieren.

Prost

Happer
quelle
2
Habe es einfach so gemacht, nachdem ich 2 Stunden mit Elektrowerkzeugen zu kämpfen hatte und nicht weiterkam ... wtf unterstützt mit TFS diese Grundfunktionalität nicht ...
alchemistisch
Die Funktionalität wird in TFS 2010 / Visual Studio 2010
hinzugefügt
2
Um klar zu sein, ist dies kein echter Rollback. Es wird eine ältere Version. Nicht dasselbe.
Ryan Cromwell
+1 für den Hinweis auf das Problem mit der Einstellung " Neueste Version des Artikels beim Auschecken" !
Sir Crispalot
18

Das Rollback wurde von tfpt.exe nach tf.exe, dem Team Foundation-Tool zur Versionskontrolle, verschoben.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]
Kevin Lo
quelle
1
Gibt es eine Möglichkeit, dies direkt von Visual Studio aus zu tun?
Kyle Delaney
14

Sie haben zwei Möglichkeiten, einen Änderungssatz in der TFS 2010-Versionskontrolle zurückzusetzen (zurückzusetzen). Die erste Option ist die Verwendung der Benutzeroberfläche (wenn Sie die neueste Version der TFS 2010 Power Tools installiert haben).

Rollback-Änderungssatz in der Benutzeroberfläche für TFS 2010

Die andere Option verwendet die Befehlszeilenanwendung zur Versionskontrolle von TFS 2010:

tf.exe rollback

Informationen zu beiden Ansätzen finden Sie in meinem Blogbeitrag hier: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

Ed Blankenship
quelle
14

Eine andere Möglichkeit, Ihre Option 1 zum Laufen zu bringen, besteht darin, die Reihenfolge der Schritte umzukehren:

  1. Überprüfen Sie die Artikel
  2. Holen Sie sich die spezifische Version auf die alte Version
  3. Einchecken (Ignorieren des Dialogfelds "Warnung Serverversion ist neuer") ODER im Abschnitt "Konflikte" des Dialogfelds "Ausstehende Änderungen" lösen Sie die Konflikte, indem Sie die lokale Version beibehalten.

Dies funktioniert auch dann, wenn Sie Get Latest On Checkout eingestellt haben.

Dave Roberts
quelle
1
Hat bei mir nicht funktioniert. Aber das muss daran liegen, dass ein Stecknadelkopf das TFS mit albernen Richtlinien eingerichtet hat.
SHODAN
5

Wenn Sie TFS 2010 verwenden , finden Sie hier den Link zum Handbuch Rollback Command (Team Foundation Version Control) .

Um ein bestimmtes Änderungsset zurückzusetzen , rufen Sie die Visual Studio-Eingabeaufforderung (2010) auf , navigieren Sie zu Ihrem TFS-Arbeitsbereichsverzeichnis und geben Sie den folgenden Befehl ein:

tf rollback /changeset:C12345

Wo 12345ist Ihre Änderungssatznummer? Danach wird Ihnen das Protokoll dessen angezeigt, was es getan hat, und Sie müssen Zusammenführungskonflikte lösen.

Иван Грозный
quelle
4

Das Fehlen einer Rollback-Option ist tatsächlich eine Funktion von TFS;)

So setzen Sie Änderungen zurück:

  1. Überprüfen Sie die gewünschte Version der gewünschten Änderungen
  2. Bearbeiten-> Alle auswählen-> Text in die Datei kopieren
  3. Überprüfen Sie, welche Version der Datei sich auf dem Server befindet
  4. Fügen Sie die Datei ein und checken Sie ein.

Und jetzt werden auch alle Ihre Zwischen-Änderungssätze vor dem Rollback gespeichert! Was für ein tolles Feature!

CamelBlues
quelle
Zuerst dachte ich, das sei sarkastisch, aber diese Lösung könnte tatsächlich für diejenigen von uns funktionieren, die nicht das Glück haben, die Rollback-Erlaubnis erhalten zu haben.
EBarr
Es sei denn, später wurden Änderungen an denselben Dateien vorgenommen, die Sie tatsächlich behalten möchten.
Robert Jeppesen
Roh, aber dies war die einzige Möglichkeit, dies in TFS durchzuführen. Wenn ich eine Kasse mache, rufe ich die alte Version ab. TFS wird automatisch auf die letzte Version zurückgesetzt, wenn ich versuche, sie wieder einzuchecken.
Steve
1

Wenn Sie 1 Check-in durchgeführt haben und es nur rückgängig machen möchten, ist dem eine Änderungssatz # zugeordnet. Erstellen Sie einen Verlauf für den betreffenden Ordner, um den fehlerhaften Änderungssatz anzuzeigen. Öffnen Sie es, um die Details anzuzeigen (alle Dateien wurden geändert usw.).

Ich glaube, dass Sie einen Änderungssatz auf diesem Bildschirm wiederherstellen oder rückgängig machen können, aber mein Visual Studio ist gerade abgestürzt, als ich dies versuchte. / seufz - ich teile definitiv deinen Schmerz.

Wo kann ich TFS auf dieser Site heruntermodifizieren?

Ben Scheirman
quelle
Nein, Rollback von der History UI wurde erst in TFS 2010 hinzugefügt.
Richard Berg
1

Ich denke, dass die Team Foundation Power Tools der richtige Weg sind. Wenn Änderungen ausstehen, können Sie sie in ein Regalset verschieben und dann alle ausstehenden Änderungen rückgängig machen oder einchecken, bevor Sie den Rollback-Befehl ausführen. Weitere Informationen finden Sie unter http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance .

Phillip Wells
quelle
1

Ben Scheirman - Das Dialogfeld "Änderungssatzdetails" verfügt nicht über Rollback-Funktionen.

jlo
quelle
1

Eine weitere Option ist TFSPlus . Dieses Visual Studio-Add-In fügt unter anderem den Befehl Get This Version zum Verlaufsfenster hinzu. Wenn Sie die Datei ausgecheckt haben, wird sie durch diese Version ersetzt. Wenn Sie danach einchecken, führen Sie effektiv einen Rollback auf diese Version durch.

Es funktioniert jedoch mit einzelnen Dateien anstelle vollständiger Änderungssätze.

Damir Arh
quelle
1

Get Specific Version

In Version Typ Dropdown - Typ wählen als Changeset

Verwenden Sie die Schaltfläche Änderungssatz ..., um Ihr Änderungsset zu finden, oder geben Sie es einfach ein, wenn Sie diese Nummer kennen.

Nachdem Sie das spezifische Änderungsset haben.

Auschecken

Check-In

Guru
quelle
0

Keine dieser Lösungen hat für mich ganz funktioniert. Die Lösung von Dave Roberts kam meiner tatsächlichen Arbeit am nächsten. Ich habe nicht die Option "Neueste Version des Elements beim Auschecken abrufen" aktiviert, es scheint sich jedoch um eine Serverrichtlinie zu handeln.

Meine Lösung hierfür besteht darin, die Datei zum Bearbeiten auszuchecken, eine bestimmte Version abzurufen und dann, wenn der Konflikt erkannt wird, das Zusammenführungstool zu verwenden (und keine der Änderungen manuell zusammenzuführen), damit die Datei in dem Zustand ist, in dem sie war.

Ich wollte mit der spezifischen Version vergleichen und die gesamte Datei kopieren und dann einfach über die alte einfügen.

Trotzdem sollte es einen einfacheren Weg geben, dies zu tun!

PJUK
quelle
0

Die obige Lösung gilt für TFS2008. Der TFS2010 verfügt über eine integrierte Rollback-Funktion. Einzelheiten finden Sie in diesem Artikel.

StarCub
quelle
Außer dass VS2010 (tf) nicht gegen TFS2008 funktioniert und da TFPT 2010 kein Rollback mehr hat, sind Sie abgespritzt.
Simon Gillbee
0

Installieren Sie die neueste Version der TFS Power Tools (August 2011). Klicken Sie einfach mit der rechten Maustaste auf einen Änderungssatz und wählen Sie "Gesamten Änderungssatz zurücksetzen". Einfacher geht es nicht.

Es ist hier verfügbar: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Es wird unter Team Explorer-Verbesserungen auf der obigen Seite angedeutet :

Neu in dieser Version ist die Möglichkeit, Änderungen in der Versionskontrolle [..] einfach rückgängig zu machen.

Eugene Beresovsky
quelle