2010-09-20 11 views
5

Ich verwende derzeit den Befehl hg diffmerge -r 32 -r 30 myfile, aber das zeigt nur zwei Fenster, nicht drei. Wie kann ich es zu einem Drei-Wege-Merge machen?Wie mache ich diffmerge eine Drei-Wege-Merge mit Mercurial?

.hgrc

[ui] 
merge=diffmerge 

[extensions] 
collapse=~/.hgext/collapse.py 
hgext.purge= 
hgext.extdiff= 
hgext.graphlog= 

[extdiff] 
cmd.diffmerge=/usr/bin/diffmerge 

[merge-tools] 
diffmerge.executable=/usr/bin/diffmerge 
diffmerge.args= --result=$output -t1="Local Version" -t2=$output -t3="Other Version" --caption=$output $local $base $other 
diffmerge.binary=False 
diffmerge.symlinks=False 
diffmerge.gui=True 
diffmerge.premerge=True 

Antwort

3

Ich nehme an, Sie meinen Sie verwenden SourceGear DiffMerge als externes Merge-Tool. Was ist dein .hgrc? Basiert es auf der sample from hg website?

Meine Vermutung ist, dass Ihre diffmerge.args ist problematisch. Sie können versuchen, den Unterschied manuell mit diesen Argumenten auszuführen, um sicherzustellen, dass er funktioniert.


Mit Ihrer .hgrc ist es jetzt klar. Ihr Befehl hg diffmerge -r 32 -r 30 myfile ist kein Zusammenführungsbefehl, stattdessen bitten Sie hg, diffmerge als externes Diff-Werkzeug zu verwenden (im Abschnitt [extdiff] spezifiziert), um myfile zwischen Version 32 und 30 zu vergleichen. Es gibt keine dritte Version.

Für merge Sie hg merge [-r<the other head>] laufen, und da Ihre .hgrc hg erzähle als Merge-Tool verwenden DiffMerge (in [ui] Abschnitt angegeben) hg DiffMerge für den 3-Wege-Merge verwenden. Ich habe überprüft, dass es in meinem Windows-Setup mit identischen hgrc funktioniert.