[PATCH] mergetools.hgrc: Make merge tool selection deterministic by using unique priorities
Mads Kiilerich
mads at kiilerich.com
Sat Jun 20 10:13:33 CDT 2009
# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1245510804 -7200
# Node ID 853e1b35b5c1bc5baa3dde61ce23b07309d57e66
# Parent cee3b19036caaa4cbc5e81071ace0da95bb848b5
mergetools.hgrc: Make merge tool selection deterministic by using unique priorities
Merge tools are chosen by priority, but in case of tools with same priority
there is no well-defined order. If no priority is specified then it is 0.
This patch gives all merge tools in mergetools.hgrc a unique priority smaller
than 0 (so that new tools without explicit priority will get higher priority).
The assigned priorities are based on existing values and ordering and how
common and usable I think they are, trying to make as few changes as possible.
This might change the behaviour in some cases, but mostly in cases where the
behaviour wasn't guaranteed anyway.
(Next step will be to reorder the entries to make it more readable ...)
diff --git a/contrib/mergetools.hgrc b/contrib/mergetools.hgrc
--- a/contrib/mergetools.hgrc
+++ b/contrib/mergetools.hgrc
@@ -6,6 +6,7 @@
kdiff3.regappend=\kdiff3.exe
kdiff3.fixeol=True
kdiff3.gui=True
+kdiff3.priority=-1
gvimdiff.args=--nofork -d -g -O $local $other $base
gvimdiff.regkey=Software\Vim\GVim
@@ -16,8 +17,10 @@
merge.priority=-10
gpyfm.gui=True
+gpyfm.priority=-3
meld.gui=True
+meld.priority=-2
tkdiff.args=$local $other -a $base -o $output
tkdiff.gui=True
@@ -25,11 +28,12 @@
xxdiff.args=--show-merged-pane --exit-with-merge-status --title1 local --title2 base --title3 other --merged-filename $output --merge $local $base $other
xxdiff.gui=True
-xxdiff.priority=-8
+xxdiff.priority=-7
diffmerge.args=--nosplash --merge --title1=base --title2=local --title3=other $base $local $other
diffmerge.checkchanged=True
diffmerge.gui=True
+diffmerge.priority=-11
p4merge.args=$base $local $other $output
p4merge.regkey=Software\Perforce\Environment
@@ -42,22 +46,27 @@
tortoisemerge.regkey=Software\TortoiseSVN
tortoisemerge.checkchanged=True
tortoisemerge.gui=True
+tortoisemerge.priority=-6
ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output
ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge
ecmerge.gui=True
+ecmerge.priority=-13
filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge
filemerge.args=-left $other -right $local -ancestor $base -merge $output
filemerge.gui=True
+filemerge.priority=-12
beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
beyondcompare3.regname=ExePath
beyondcompare3.gui=True
+beyondcompare3.priority=-4
winmerge.args=/e /u /dl local /dr other /wr $local $other $output
winmerge.regkey=Software\Thingamahoochie\WinMerge
winmerge.regname=Executable
winmerge.checkchanged=True
winmerge.gui=True
+winmerge.priority=-5
More information about the Mercurial-devel
mailing list