|
|
#!/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:\(.* \).*\(\/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 > differ.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 differ.py
|
|
|
hg extdiff -p `pwd`/differ.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
|
|
|
|