Mergen von MQ Patches mit Rebase

posted by Steve Losh on February 11, 2010

Vorweg: Ich will mit diesem Tipp etwas neues versuchen. Dies ist der erste Tipp der einen Screencast beinhaltet. Es ist ein komplexes Thema und ich denke ein Screencast ist der beste Weg dies zu behandeln. Bitte nuten Sie die Kommentarfunktion um mir mitzuteilen, ob dies eine gute Idee ist oder ob hgtip sich nur auf Tipps in Textform beschränken soll.

Dieser Tipp ist für alle die mitMQ für das behandeln von Patches vertraut sind. Wenn Sie MQ häufig nutzen werden Sie einige Probleme festgestellt haben. Eines der grössten Probleme tritt auf, wenn Sie einen Patch haben und jemand anderes ändert die Datei die sie bearbeiten.

Der normale Ablauf ist das Sie mit pull die Änderungen übernehmen, mit qpop ihre Patches rückgängig machen, auf die neue Spitze ihres Repository (oder Branch) aktualisieren und mit qpush die Patches applizieren. Leider führt MQ keine Informationen über die Elternversionen von Patches. Dadurch kann kein intelligentes Merge für qpush durchgeführt werden.

Sie können diese Limitierung durch die Nutzung der [rebase Erweiterung][] umgehen. Damit werden die MQ Patches auf eine andere Revision gezügelt bevor sie angewendet werden. Ich demonstriere das Vorgehen im untenstehenden Screencast:

MQ Patches lassen sich oft nicht so einfach mergen. Aber Sie können die rebase Erweiterung nutzen um dies zu verbessern.