Mercurial > hg
view tests/test-issue4074.t @ 38041:242eb5132203
filemerge: support specifying a python function to custom merge-tools
Eliminates the need to specify a python executable, which may not exist on
system. Additionally launching script inprocess aids portability on systems
that can't execute python via the shell.
Example usage "merge-tools.myTool.executable=python:c:\myTool.py:mergefn"
where myTool.py contains a function:
"def mergefn(ui, repo, args, **kwargs):"
where args is list of args passed to merge tool.
(by default, expanded: $local $base $other)
Invoking the specified python function was done by exposing and invoking
(hook._pythonhook -> hook.pythonhook)
author | hindlemail <tom_hindle@sil.org> |
---|---|
date | Wed, 16 May 2018 14:11:41 -0600 |
parents | 57c671cf7a69 |
children | 5abc47d4ca6b |
line wrap: on
line source
#require no-pure A script to generate nasty diff worst-case scenarios: $ cat > s.py <<EOF > import random > for x in range(100000): > print > if random.randint(0, 100) >= 50: > x += 1 > print(hex(x)) > EOF $ hg init a $ cd a Check in a big file: $ $PYTHON ../s.py > a $ hg ci -qAm0 Modify it: $ $PYTHON ../s.py > a Time a check-in, should never take more than 10 seconds user time: $ hg ci --time -m1 time: real .* secs .user [0-9][.].* sys .* (re)