2010-09-30 9 views
5

Ich bin gerade von SVN gewechselt, wo ich nach einigen Änderungen am Stamm eine Reihe von Revisionen (von meiner letzten Zusammenführung vom Stamm zum Branhc - HEAD) in einen Zweig zusammenführen würde. Ich möchte das gleiche mit Mercurial mit TortoiseHG tun, aber ich kann nicht herausfinden, wie. Ich habe gerade zwei Changesets an den Stamm übergeben, jetzt brauche ich den Zweig, um diese Änderungen zu integrieren. Danke im Voraus!Mercurial/TortoiseHG Zusammenführen von Trunk-Änderungen in Zweig

Antwort

7

In hg (oder einem anderen DVCS) können Sie alle Änderungssets mit anderen Änderungssets zusammenführen (außer den Vorgängern). Wenn Sie das Repository-Protokoll von TortoiseHG öffnen (Changelog anzeigen im Explorer-Kontextmenü oder hgtk log über die Befehlszeile), können Sie auf jeden Änderungssatz aktualisieren und dann "Zusammenführen mit" auswählen.

In Ihrem speziellen Fall würden Sie auf Ihre Zweigstelle aktualisieren und dann mit dem Stammkopf zusammenführen.

+0

Mein Fall war aufgrund der SVN-Konvertierung nicht ganz so einfach wie dieser, aber das ist der genaue Ansatz, den ich nehmen werde. – Chris

+0

@Chris: Möchten Sie die Details Ihrer Einrichtung teilen? Welche Art von Verzweigungsstruktur hast du? –

+0

Ich habe versucht, meinen Stamm in meinen Zweig zu verschmelzen, aber da mein Repository aus einem SVN Repo mit HG CONVERT erstellt wurde, wusste HG nicht, dass ich Änderungen aus dem Kofferraum auf dem Weg aufgenommen hatte. Ich führte die Zusammenführung vom Stamm zum Zweig durch und entschied mich, alle meine Änderungen vom Zweig abzuhalten. Ich habe mich verpflichtet. Dies ließ HG erkennen, dass mein Rüssel mit dem Ast verschmolzen war. Dann habe ich die neuen Änderungen am Stamm vorgenommen, festgeschrieben, und jetzt, als ich mich zusammenschloss, wusste HG, dass diese neuen Änderungen die einzigen waren, die zusammengeführt werden mussten. Jetzt weiß HG genau, was in meinem Repository ist. – Chris

2

Dies ist, was ich in der Regel tun:

hg up trunk #assuming trunk is your main branch 
hg merge -r myawesomebranch 
#party 
22

ich einen Führer über working with branches in Mercurial geschrieben habe. Es läuft darauf hinaus, diese nach unten:

$ hg update mybranch # unless you are already at the tip of the branch 
$ hg merge default # merge in latest changes from "trunk" 
$ hg commit -m 'Merge with default' 

Wenn mybranch getan wird, schließen Sie es und führen Sie sie in default:

$ hg commit --close-branch -m 'Ready for merge' 
$ hg update default 
$ hg merge mybranch 
$ hg commit -m 'Integrated mybranch' 

Die kühle Sache über Mercurial ist, dass Sie die gleichen Befehle verwenden, egal in welche Richtung du fusionierst. Das Merge-Tracking-System von Subversion erfordert, dass Sie spezielle Befehlszeilen-Flags hinzufügen, wenn Sie in eine Richtung zusammenführen, aber nicht in die andere (ich kann mich nicht erinnern, welche Richtung welche ist, ohne im Handbuch nachzuschlagen).

+0

Können Sie einen aktualisierten Link zum Handbuch bereitstellen? Der in diesem Kommentar ist gebrochen. –

+0

Sicher, ich habe den Link repariert! –

Verwandte Themen