2010-09-20 14 views
5

Attualmente sto usando il comando hg diffmerge -r 32 -r 30 myfile, ma questo visualizza solo due finestre, non tre. Come posso farla unire in tre modi?Come faccio a diffmerge a fare un'unione a tre vie con 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 

risposta

3

suppongo che significa che si sta utilizzando SourceGear DiffMerge come strumento di unione esterna. Qual è il tuo .hgrc? È basato sullo sample from hg website?

La mia ipotesi è che il tuo diffmerge.args sia problematico. Puoi provare a eseguire diffmerge manualmente con quegli argomenti per assicurarti che funzioni.


Con il tuo .hgrc ora è chiaro. Il tuo comando hg diffmerge -r 32 -r 30 myfile NON è un comando di unione, ma stai chiedendo a hg di usare diffmerge come strumento di diffusione esterno (specificato nella sezione [extdiff]) per confrontare myfile tra la versione 32 e 30. Non c'è una terza versione in questione.

per Merge si esegue hg merge [-r<the other head>], e dal momento che il vostro .hgrc dice hg di utilizzare DiffMerge come strumento di unione (specificato nella sezione [ui]) hg userà DiffMerge per il 3-way unione. Ho verificato che funzioni nella mia installazione di Windows con hgrc identico.

Problemi correlati