2013-08-09 12 views
7

Einfache Frage: Gibt es eine Möglichkeit zum Zurückkehren - alle von TortoiseHg Werkbank? Ich sehe, wie man eine einzelne Datei zurücksetzt. Im Idealfall könnte ich auf eine Revision klicken und aus dem rechten Mausmenü den Punkt "Alles zurücksetzen" finden.Revert --all in TortoiseHg Workbench

Ich benutze TortoiseHg 2.8 auf einer Ubuntu-Box.

EDIT Ich hätte mehr Details zu meiner Frage zur Verfügung gestellt, um einen Kontext bereitzustellen. Lassen Sie mich den speziellen Anwendungsfall beschreiben:

Ich möchte mein Arbeitsverzeichnis zurück in den Zustand eines vergangenen Commits setzen, damit ich die Ausgabe von der ausführbaren Datei erzeugen kann, von der ich weiß, dass sie "gut" ist. Sobald ich diese Ausgabe erstellt habe, möchte ich zurück zum Tipp gehen und meine Entwicklung fortsetzen und diese Geschichte linear halten. Von der Kommandozeile aus habe ich "hg revert --all --rev 22", die Ausgabe erzeugt, dann "hg revert --all", was getan hat, was ich wollte. "hg update" erstellt einen Verlauf mit einer Verzweigung (wenn ich das richtig verstehe). FWIW there ist ein "update" button in TortoiseHg (in dem Feld, in dem die Liste der Dateien angezeigt wird) sowie einen rechten Mausmenüpunkt bei einer bestimmten Revision.

Antwort

10

das Arbeitsverzeichnis So stellen Sie den Zustand einer gegebenen changeset (welche tip sein könnte) entsprechen, können Sie Update verwenden:

  1. Rechtsklick auf die changeset Sie auf ‚revert‘ wollen.
  2. Wählen Sie "Update"
  3. Überprüfen Sie die "Discard lokale Änderungen" Checkbox
  4. Klicken Sie auf Aktualisieren

Es hg update -r changeset -C in der Konsole sein würde.

Jetzt können Sie die Ausgabe aus dem 'Status' des Arbeitsverzeichnisses an diesem Punkt im Verlauf (d. H. Aus der ausführbaren Datei bei diesem Änderungssatz) erstellen. Wenn Sie hier keine Commits vornehmen, wird kein Changeset erstellt, und daher wird der Repo-Historie nichts hinzugefügt.

Sobald Sie die Ausgabe zu Ihrer Zufriedenheit haben, können Sie wieder aktualisieren, um die tip der Entwicklung über den gleichen Prozess und setzen Sie Ihre Arbeit:

  1. Rechtsklick auf die tip der Entwicklung.
  2. Wählen Sie „Update“
  3. Überprüfen Sie die „Discard lokale Änderungen“ Checkbox
  4. Klicken Sie Update

Der Vorteil update über revert der Verwendung ist, dass Schildkröten die Eltern des Arbeitsverzeichnisses als die explizit angezeigt werden ändere es Geschichte. Unter revert könnte es sehr einfach sein, die Dateien zurückzusetzen und den Überblick darüber zu verlieren, zu welchem ​​Änderungssatz Sie zurückgekehrt sind und welchen Teil des Verlaufs Sie belegt haben.

(Dies setzt voraus, dass Sie zu diesem Punkt im Verlauf wechseln möchten. Wenn Sie einen Änderungssatz erstellen müssen, der einen früheren Änderungssatz rückgängig macht, schauen Sie in backout, obwohl ich nicht sicher bin, ob das in Tortoise verfügbar ist.)


+0

Danke für die Info. Siehe die Bearbeitung meines OPs. "Update" würde meistens für das funktionieren, was ich wollte, aber es ist ein bisschen schwerer als "revert", aber vielleicht ist mein Anwendungsfall etwas ungewöhnlich. –

+0

Ich habe meine Antwort aktualisiert, um Ihre Änderungen zu adressieren @adt_Jeff – Edward

0

Sie können alle geänderten Dateien in der Liste mit Strg + A auswählen und dann "Revert" aus dem Kontextmenü wählen.

+0

Danke für die Info. Die einzige Schwierigkeit bei diesem Ansatz (es sei denn, ich verpasse etwas) ist, dass es keine bequeme Möglichkeit gibt, alle Dateien zu finden, die sich zwischen dem aktuellen Arbeitsverzeichnis und der gewünschten Revision geändert haben. (Es gibt ein "diff to local", das das separate visuelle Diff-Tool aufruft, aber es gibt keine gute Möglichkeit, von dort aus "revert" zu starten.) –