view tests/test-extdiff @ 9622:9d1a480ca6ea

gendoc: fix synopsis The synopsis is used as an inline literal when generating the manpage. There should not be any whitespace on the inside of the quotation marks in inline literals. Commands with an empty synopsis (such as tags) produces ``tags `` as synopsis, which triggers a warning.
author Martin Geisler <mg@lazybytes.net>
date Tue, 20 Oct 2009 22:42:49 +0200
parents bf795c34c63d
children 6045a8c4dbbc
line wrap: on
line source

#!/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