|
|
#!/bin/sh
|
|
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
|
echo "extdiff=" >> $HGRCPATH
|
|
|
|
|
|
hg init a
|
|
|
cd a
|
|
|
echo a > a
|
|
|
echo b > b
|
|
|
hg add
|
|
|
# should diff cloned directories
|
|
|
hg extdiff -o -r $opt
|
|
|
|
|
|
echo "[extdiff]" >> $HGRCPATH
|
|
|
echo "cmd.falabala=echo" >> $HGRCPATH
|
|
|
echo "opts.falabala=diffing" >> $HGRCPATH
|
|
|
|
|
|
hg falabala
|
|
|
|
|
|
hg help falabala
|
|
|
|
|
|
hg ci -d '0 0' -mtest1
|
|
|
|
|
|
echo b >> a
|
|
|
hg ci -d '1 0' -mtest2
|
|
|
|
|
|
# should diff cloned files directly
|
|
|
hg falabala -r 0:1
|
|
|
|
|
|
# test diff during merge
|
|
|
hg update -C 0
|
|
|
echo c >> c
|
|
|
hg add c
|
|
|
hg ci -m "new branch" -d '1 0'
|
|
|
hg merge 1
|
|
|
# should diff cloned file against wc file
|
|
|
hg falabala > out
|
|
|
# cleanup the output since the wc is a tmp directory
|
|
|
sed 's:\(diffing [^ ]* \).*\(\/test-extdiff\):\1[tmp]\2:' out
|
|
|
# test --change option
|
|
|
hg ci -d '2 0' -mtest3
|
|
|
hg falabala -c 1
|
|
|
# check diff are made from the first parent
|
|
|
hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
|
|
|
#hg log
|
|
|
|
|
|
echo
|
|
|
echo '% test extdiff of multiple files in tmp dir:'
|
|
|
hg update -C 0 > /dev/null
|
|
|
echo changed > a
|
|
|
echo changed > b
|
|
|
chmod +x b
|
|
|
echo '% diff in working directory, before'
|
|
|
hg diff --git
|
|
|
echo '% edit with extdiff -p'
|
|
|
# prepare custom diff/edit tool
|
|
|
cat > 'diff tool.py' << EOT
|
|
|
#!/usr/bin/env python
|
|
|
import time
|
|
|
time.sleep(1) # avoid unchanged-timestamp problems
|
|
|
file('a/a', 'ab').write('edited\n')
|
|
|
file('a/b', 'ab').write('edited\n')
|
|
|
EOT
|
|
|
chmod +x 'diff tool.py'
|
|
|
hg extdiff -p "`pwd`/diff tool.py" # will change to /tmp/extdiff.TMP and populate directories a.TMP and a and start tool
|
|
|
echo '% diff in working directory, after'
|
|
|
hg diff --git
|
|
|
|
|
|
echo
|
|
|
echo % test extdiff with --option
|
|
|
hg extdiff -p echo -o this -c 1
|
|
|
hg falabala -o this -c 1
|
|
|
echo
|
|
|
|