Frage

In unserer Mercurial -Projektkonfiguration haben wir 3 Zweige in einem einzigen Repository. Einer ist ein stabiler Release-Zweig, in dem dringende Fehlerbehebungen durchgeführt werden, einer Feature-Zweig, der einen neuen Feature-Code enthält, und einer ist ein UAT .

Wir haben eine ganze Menge neuer Feature -Code ohne Probleme in die UAT -Filiale zusammengefasst. Anschließend haben wir den stabilen Zweig mit den Fehlerbehebungen in den UAT -Zweig zusammengefasst, aber dies scheint den neuen Feature -Code zu entfernen. Ich habe festgestellt, dass dieses Problem durch jemanden verursacht wurde, der vor einiger Zeit UAT in Stall zusammenfasst (was nie hätte passieren sollen !!). Wenn ich jetzt versuche, die Fehlerbehebungen in UAT zusammenzuführen, werden alle neuen Feature -Code entfernt.

Gibt es eine Möglichkeit, die Auswirkungen der Verschmelzung von UAT in stabil zu beseitigen, während die Fehlerbehebungen, die nach dieser „schlechten Zusammenführung“ nachkommen, immer noch beibehalten? Ich habe versucht, den Zusammenschluss zu ernähren, aber es scheint überhaupt keine Wirkung zu haben. Kann ich einen Strip durchführen und die erforderlichen Änderungen wieder in Anspruch nehmen?

Danke im Voraus.

War es hilfreich?

Lösung

Ich habe es tatsächlich geschafft, dies selbst durch ein bisschen Versuch und Irrtum zu beheben.

Zunächst müssen Sie die Transplantations- und Mqmerge -Erweiterungen in Ihrer mercurial.ini -Datei aktivieren. Fügen Sie die Zeilen nach den Zeilen unter dem Erweiterungsheader hinzu

   transplant=
   mq=

Klonen Sie Ihr Repository an einen neuen Ort. Entfernen Sie in Ihrem neuen Repo die schlechte Zusammenführung, indem Sie den Befehl Strip verwenden, um die Auswirkungen der schlechten Zusammenführung zu beseitigen. (Achten Sie darauf, dass dies alle Abstammungswechsel entfernen wird)

Anschließend müssen Sie alle erforderlichen Änderungen in chronologischer Reihenfolge aus dem anderen Repo korrigieren, indem Sie einen ähnlichen Befehl wie unten verwenden

    hg transplant -s "otherRepo" -b "branchName" "changesetHexNumber"

Wiederholen Sie den Befehl transplantieren für alle erforderlichen Änderungen. Ouila!

NB: Wenn Sie ein zentrales Repository verwenden, müssen Sie den beleidigenden Zusammenschluss/Changset auch dort ausziehen, da Ihr lokales Repo der Meinung ist, dass Sie über herausragende Änderungen zum Ziehen verfügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top