Hg (Mercurial): Gibt es irgendeine Möglichkeit, die Arbeitskopie für später beiseite zu legen?

8

Szenario: Nach Ihrem letzten Commit haben Sie sich entschieden, die Codebasis umfangreich zu überarbeiten. Nach einiger Zeit merkt man, dass es länger dauert als erwartet, und Sie würden das Refactoring wirklich für eine andere Zeit verschieben und an dringenderen Aufgaben arbeiten. Aber Sie möchten nicht die gesamte Refactoring-Arbeit verlieren, die Sie bisher geleistet haben.

Gibt es also eine Möglichkeit, die Arbeitskopie zu "archivieren" oder zu "verzweigen" (im Wesentlichen, sie beiseite zu legen, sie aber im Repository für späteren Zugriff zu behalten) und dann von dort zum letzten guten Commit zurückzukehren und von dort fortzufahren, ohne Angst davor, mehrere Köpfe zu kreieren oder die beiden durcheinander zu bringen?

    
Nairou 27.05.2011, 22:53
quelle

5 Antworten

18

Mach dir keine Sorgen wegen "der Angst vor zwei Köpfen". Zwei Köpfe sind ein sehr Normalzustand. Es heißt anonyme Zweige, und es ist eine der Möglichkeiten, wie Menschen temporäre Zweige in Mercurial tun.

Einfach committen und dann auf tip-1 updaten und schon kann es losgehen:

%Vor%

und weg du gehst. Wenn Sie ein Lesezeichen (weniger dauerhaft als ein Tag) auf diesen Kopf setzen möchten, können Sie das tun, aber Sie müssen sich darüber keine Gedanken machen.

Sie können immer einen Kopf drücken, ohne einen anderen zu drücken, indem Sie hg push -r HEAD verwenden, wobei dies auch hg push -r .

sein kann

Fürchte dich nicht vor Köpfen - sie sind es, was ein DAG-basiertes VCS stark macht.

    
Ry4an Brase 28.05.2011, 03:20
quelle
1

Sie können dies mit den Erweiterungen mq, attictic oder shelve tun.

    
Neil 27.05.2011 23:00
quelle
1
  1. Weisen Sie Ihrer Refactor-Revision ein Tag zu
  2. Übergeben Sie das Tag
  3. Klonen Sie das Repository erneut
  4. Zurück zur stabilen Version
  5. Arbeiten Sie mit der stabilen Version
  6. Mach dir keine Sorgen über mehrere Köpfe, du kannst später einfach zusammenführen

Da mercurial feste Links verwendet, können Sie beide Repositories auf Ihrem lokalen Rechner mit minimalem Platzbedarf behalten. Befehle:

$ hg Umbau Refactor
$ CD ..
$ hg Klon Refactor Stable
$ cd Stable
$ hg revert -r REVISION_NUMBER

zusätzliche Hilfe:
Ссылка
Ссылка

    
maher.cs 27.05.2011 23:28
quelle
1

Sie können es auf die einfache Weise tun:

%Vor%

Ihre Änderungen werden nun in tmp gespeichert. Sie können sie mit

wiederherstellen %Vor%

und du bist wieder da, wo du warst. Es gibt Erweiterungen wie shelve , die das oben genannte für Sie automatisiert.

    
Martin Geisler 14.12.2011 10:39
quelle
0

In git würden Sie einen "Versteck" machen. Laut Dies hat hg "shelve", aber es erfordert eine Erweiterung.

    
James Scriven 27.05.2011 23:01
quelle