2010-03-18 8 views
10

Ich habe mit Mercurial und Mercurial-Warteschlangen gespielt, und jetzt haben eine ziemlich vernünftige Arbeitsversion. Bevor ich jedoch einen Patch einreiche, möchte ich diese Spagetti-Geschichte gerne in diskrete, logische Schritte zusammenfassen, anstatt das halbüberlappende wiederholte Do-Undo-Redo-leicht-anders-Chaos, das es jetzt ist, wenn überhaupt um die Anzahl der Patches zu reduzieren.Mercurial Queues: Kombinieren Patches

Wie mache ich das?

Antwort

8

hg qfold ist der Weg zu gehen. Sei sehr vorsichtig damit. Stellen Sie sicher, dass Sie alle instructions vorhands gelesen haben. Es ist vernünftig zu Version Ihrer patchqueue auch (als verschachtelte repoository), so haben Sie Sicherungen:

hg qinit [-c]

init eine neue Queue-Repository

Die Queue-Repository wird unversionierte durch Standard. Wenn -c angegeben ist, erstellt qinit ein separates verschachteltes Repository für Patches (qinit -c kann auch später ausgeführt werden, um ein nicht versioniertes Patch-Repository in ein versioniertes zu konvertieren). Sie können mit qcommit Änderungen an diesem Warteschlangenrepository festschreiben.

+0

Danke, das hat funktioniert! Jemand anderes behauptete, dass 'hg export ...> combined.patch' genauso effektiv gewesen wäre, ohne MQ zu benötigen - ist das so? –

+0

Mit mercurial 1.5 können Sie auch mehrere Patches nacheinander importieren. Sie müssen diese also nicht im Export kombinieren. Sie benötigen weiterhin MQ, um Ihre Änderungen zu entfernen, oder Sie müssen ein sauberes Repo klonen und die kombinierten Patches dort anwenden und dann Ihren Zweig verlassen. Zu viel Arbeit IMHO. –