17 Stimmen

Mercurial - Standardzweig schließen und durch einen benannten Zweig als neuen Standard ersetzen

In einem Mercurial-Repo ist der "default"-Zweig sehr veraltet, so dass es keinen Sinn mehr macht, die Änderungen aus "develop", einem benannten Zweig mit der neuesten bereitgestellten Version der Anwendung, zusammenzuführen.

Anstatt develop in default zu mergen, wie kann ich den aktuellen default-Zweig schließen und dann einen neuen default-Zweig mit dem Kopf von develop erstellen?

Ich habe einige andere ähnliche Fragen und Antworten gesehen, aber ich habe immer noch Schwierigkeiten zu verstehen, wie dies funktionieren soll.

Danke!

28voto

Tim Delaney Punkte 5435

Wenn sich default etwas von develop entfernt hat und du möchtest, dass default nach dem Zusammenführen genau wie develop ist, benötigst du einen etwas anderen Satz von Befehlen als das, was Edward dir gegeben hat (das wird auch funktionieren, wenn develop ein direkter Nachkomme von default ist).

hg update -C default
hg -y merge --tool internal:fail develop
hg revert --all --no-backup -r develop
hg resolve --all --mark
hg commit -m "merge updating default to current develop"

Dies bedeutet, dass alle Konflikte zu einem ungelösten Merge führen. Du setzt dann alles auf den Stand des develop-Zweiges zurück (ohne Backup, damit keine .orig-Dateien übrig bleiben).

2voto

Edward Punkte 3248

Basierend auf Ihrem Kommentar, dass es nicht erforderlich ist, den Zweig zu schließen, hier sind eine Reihe von Schritten, die den Standardzweig auf den Stand des Entwicklungszweigs bringen sollten:

  1. hg update default
  2. hg merge --tool internal:other -- zum Zusammenführen unter Bevorzugung des Entwicklungszweigs
  3. hg diff -r develop -- Vergleichen Sie mit Entwickeln, um sicherzustellen, dass Sie eine genaue Kopie haben
  4. hg commit -m "Merge-Update des Standardzweigs auf den aktuellen Entwicklungsstand"

Nach Abschluss sollten Sie einen aktualisierten Standard haben, der den Entwicklungszweig widerspiegelt und diese wieder in Einklang bringt.

0voto

ivzhh Punkte 333

Ich denke, es ist besser, ein Konzept in Tortoisehg zu verwenden, um zu erklären, wie es funktioniert.

  • hg update zum Entwickeln des Branches
  • wählen Sie den Head des Standard-Branches und wählen Sie Merge mit lokal
  • dann wählen Sie alle Änderungen aus dem Ziel des Merges verwerfen (anderes), somit wird Standard in Entwickeln zusammengeführt, ohne Entwickeln zu beeinträchtigen
  • dann Branchen Sie vom Head des Entwicklungs-Branches zu Standard, verwenden Sie hg branch default, Standard startet wieder neu

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X