view mercurial/defaultrc/mergetools.rc @ 48546:e91aa800ae5b

rhg: desambiguate status without decompressing filelog if possible When status is unsure based on `stat()` and the dirstate if a file is clean or modified, we need to compare it against the filelog. This comparison can skip looking at contents if the lengths differ. This changeset optimize this further to deduce what we can about the length if the filelog without decompressing it or resolving deltas. Differential Revision: https://phab.mercurial-scm.org/D11965
author Simon Sapin <simon.sapin@octobus.net>
date Fri, 07 Jan 2022 14:40:21 +0100
parents dbc462e34e92
children a6efc1f1a73b
line wrap: on
line source

# Some default global settings for common merge tools

[merge-tools]

; The Araxis Merge tool is configured to work with newer versions of Araxis Merge
; if you are using Araxis Merge 2008 or earlier, create a [merge-tools] section
; in your mercurial.ini file, and add one of the two following "araxis.executable"
; lines, depending on whether you have installed a 32 or a 64 bit version
; of Araxis Merge and whether you are on a 32 or 64 bit version of windows
;
;araxis.executable=${ProgramFiles}/Araxis/Araxis Merge/ConsoleCompare.exe
;araxis.executable=${ProgramFiles(x86)}/Araxis/Araxis Merge/ConsoleCompare.exe
;
; Please remember to remove the leading ";" to uncomment the line
;
araxis.args=/3 /a2 /wait /merge /title1:"Other" /title2:"Base" /title3:"Local :"$local $other $base $local $output
araxis.binary=True
araxis.checkconflicts=True
araxis.diffargs=/2 /wait /title1:$plabel1 /title2:$clabel $parent $child
araxis.gui=True
araxis.priority=-2
araxis.regappend=\ConsoleCompare.exe
araxis.regkey=SOFTWARE\Classes\TypeLib\{46799e0a-7bd1-4330-911c-9660bb964ea2}\7.0\HELPDIR

; Linux version of BeyondCompare 3 and 4 (dirdiff is version 4 only)
bcompare.args=$local $other $base -mergeoutput=$output -ro -lefttitle=$labellocal -centertitle=$labelbase -righttitle=$labelother -outputtitle=merged -automerge -reviewconflicts -solo
bcompare.diffargs=-lro -lefttitle=$plabel1 -righttitle=$clabel -solo -expandall $parent $child
bcompare.gui=True
bcompare.priority=-1

; OS X version of Beyond Compare
bcomposx.args=$local $other $base -mergeoutput=$output -ro -lefttitle=$labellocal -centertitle=$labelbase -righttitle=$labelother -outputtitle=merged -automerge -reviewconflicts -solo
bcomposx.diffargs=-lro -lefttitle=$plabel1 -righttitle=$clabel -solo -expandall $parent $child
bcomposx.executable = /Applications/Beyond Compare.app/Contents/MacOS/bcomp
bcomposx.gui=True
bcomposx.priority=-1

; Windows version of BeyondCompare 3
beyondcompare3.args=$local $other $base $output /ro /lefttitle=$labellocal /centertitle=$labelbase /righttitle=$labelother /automerge /reviewconflicts /solo
beyondcompare3.diffargs=/lro /lefttitle=$plabel1 /righttitle=$clabel /solo /expandall $parent $child
beyondcompare3.gui=True
beyondcompare3.priority=-2
beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
beyondcompare3.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 3
beyondcompare3.regname=ExePath

; Windows version of BeyondCompare 4
beyondcompare4.args=$local $other $base /mergeoutput=$output /ro /lefttitle=$labellocal /centertitle=$labelbase /righttitle=$labelother /outputtitle=merged /automerge /reviewconflicts /solo
beyondcompare4.diffargs=/lro /lefttitle=$plabel1 /righttitle=$clabel /solo /expandall $parent $child
beyondcompare4.gui=True
beyondcompare4.premerge=False
beyondcompare4.priority=-1
beyondcompare4.regkey=Software\Scooter Software\Beyond Compare 4
beyondcompare4.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 4
beyondcompare4.regname=ExePath

diffmerge.args=-nosplash -merge -title1=$labellocal -title2=merged -title3=$labelother $local $base $other -result=$output
diffmerge.check=changed
diffmerge.diffargs=--nosplash --title1=$plabel1 --title2=$clabel $parent $child
diffmerge.gui=True
diffmerge.priority=-7
diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\
diffmerge.regkeyalt=Software\Wow6432Node\SourceGear\SourceGear DiffMerge\
diffmerge.regname=Location

diffuse.args=$local $base $other
diffuse.diffargs=$parent $child
diffuse.gui=True
diffuse.priority=-3

ecmerge.args=$base $local $other --mode=merge3 --title0=$labelbase --title1=$labellocal --title2=$labelother --to=$output
ecmerge.diffargs=$parent $child --mode=diff2 --title1=$plabel1 --title2=$clabel
ecmerge.gui=True
ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge
ecmerge.regkeyalt=Software\Wow6432Node\Elli\xc3\xa9 Computing\Merge

# editmerge is a small script shipped in contrib.
# It needs this config otherwise it behaves the same as internal:local
editmerge.args=$output
editmerge.check=changed
editmerge.premerge=keep

filemerge.args=-left $other -right $local -ancestor $base -merge $output
filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge
filemerge.gui=True

filemergexcode.args=-left $other -right $local -ancestor $base -merge $output
filemergexcode.executable=/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge
filemergexcode.gui=True

gpyfm.gui=True

gvimdiff.args=--nofork -d -g -O $local $other $base
gvimdiff.diffargs=--nofork -d -g -O $parent $child
gvimdiff.priority=-9
gvimdiff.regkey=Software\Vim\GVim
gvimdiff.regkeyalt=Software\Wow6432Node\Vim\GVim
gvimdiff.regname=path

kdiff3.args=--auto --L1 $labelbase --L2 $labellocal --L3 $labelother $base $local $other -o $output
kdiff3.diffargs=--L1 $plabel1 --L2 $clabel $parent $child
kdiff3.fixeol=True
kdiff3.gui=True
kdiff3.regappend=\kdiff3.exe
kdiff3.regkey=Software\KDiff3
kdiff3.regkeyalt=Software\Wow6432Node\KDiff3

meld.args=--label=$labellocal $local --label='merged' $base --label=$labelother $other -o $output --auto-merge
meld.check=changed
meld.diffargs=-a --label=$plabel1 $parent --label=$clabel $child
meld.gui=True

merge.check=conflicts
merge.priority=-100

p4merge.args=$base $local $other $output
p4merge.diffargs=$parent $child
p4merge.gui=True
p4merge.priority=-8
p4merge.regappend=\p4merge.exe
p4merge.regkey=Software\Perforce\Environment
p4merge.regkeyalt=Software\Wow6432Node\Perforce\Environment
p4merge.regname=P4INSTROOT

p4mergeosx.args = $base $local $other $output
p4mergeosx.diffargs=$parent $child
p4mergeosx.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4mergeosx.gui = True
p4mergeosx.priority=-8

tkdiff.args=$local $other -a $base -o $output
tkdiff.diffargs=-L $plabel1 $parent -L $clabel $child
tkdiff.gui=True
tkdiff.priority=-8

tortoisemerge.args=/base:$base /mine:$local /theirs:$other /merged:$output
tortoisemerge.check=changed
tortoisemerge.diffargs=/base:$parent /mine:$child /basename:$plabel1 /minename:$clabel
tortoisemerge.gui=True
tortoisemerge.priority=-8
tortoisemerge.regkey=Software\TortoiseSVN
tortoisemerge.regkeyalt=Software\Wow6432Node\TortoiseSVN

UltraCompare.args = $base $local $other -title1 base -title3 other
UltraCompare.binary = True
UltraCompare.check = conflicts,changed
UltraCompare.diffargs=$child $parent -title1 $clabel -title2 $plabel1
UltraCompare.gui = True
UltraCompare.priority = -2
UltraCompare.regkey=Software\Microsoft\Windows\CurrentVersion\App Paths\UC.exe
UltraCompare.regkeyalt=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\UC.exe

vimdiff.args=$local $other $base -c 'redraw | echomsg "hg merge conflict, type \":cq\" to abort vimdiff"'
vimdiff.check=changed
vimdiff.priority=-10
winmerge.args=/e /x /wl /ub /dl $labelother /dr $labellocal $other $local $output
winmerge.check=changed
winmerge.diffargs=/r /e /x /ub /wl /dl $plabel1 /dr $clabel $parent $child
winmerge.gui=True
winmerge.priority=-10
winmerge.regkey=Software\Thingamahoochie\WinMerge
winmerge.regkeyalt=Software\Wow6432Node\Thingamahoochie\WinMerge\
winmerge.regname=Executable

xxdiff.args=--show-merged-pane --exit-with-merge-status --title1 $labellocal --title2 $labelbase --title3 $labelother --merged-filename $output --merge $local $base $other
xxdiff.diffargs=--title1 $plabel1 $parent --title2 $clabel $child
xxdiff.gui=True
xxdiff.priority=-8