|
|
#!/bin/sh
|
|
|
|
|
|
hg init a
|
|
|
cd a
|
|
|
|
|
|
echo start > start
|
|
|
hg ci -Amstart -d '0 0'
|
|
|
echo new > new
|
|
|
hg ci -Amnew -d '0 0'
|
|
|
echo '% new file'
|
|
|
hg diff --git -r 0
|
|
|
|
|
|
hg cp new copy
|
|
|
hg ci -mcopy -d '0 0'
|
|
|
echo '% copy'
|
|
|
hg diff --git -r 1:tip
|
|
|
|
|
|
hg mv copy rename
|
|
|
hg ci -mrename -d '0 0'
|
|
|
echo '% rename'
|
|
|
hg diff --git -r 2:tip
|
|
|
|
|
|
hg rm rename
|
|
|
hg ci -mdelete -d '0 0'
|
|
|
echo '% delete'
|
|
|
hg diff --git -r 3:tip
|
|
|
|
|
|
cat > src <<EOF
|
|
|
1
|
|
|
2
|
|
|
3
|
|
|
4
|
|
|
5
|
|
|
EOF
|
|
|
hg ci -Amsrc -d '0 0'
|
|
|
chmod +x src
|
|
|
hg ci -munexec -d '0 0'
|
|
|
echo '% chmod 644'
|
|
|
hg diff --git -r 5:tip
|
|
|
|
|
|
hg mv src dst
|
|
|
chmod -x dst
|
|
|
echo a >> dst
|
|
|
hg ci -mrenamemod -d '0 0'
|
|
|
echo '% rename+mod+chmod'
|
|
|
hg diff --git -r 6:tip
|
|
|
|
|
|
echo '% nonexistent in tip+chmod'
|
|
|
hg diff --git -r 5:6
|
|
|
|
|
|
echo '% binary diff'
|
|
|
cp $TESTDIR/binfile.bin .
|
|
|
hg add binfile.bin
|
|
|
hg diff --git > b.diff
|
|
|
cat b.diff
|
|
|
|
|
|
echo '% import binary diff'
|
|
|
hg revert binfile.bin
|
|
|
rm binfile.bin
|
|
|
hg import -mfoo b.diff
|
|
|
cmp binfile.bin $TESTDIR/binfile.bin
|
|
|
|
|
|
echo
|
|
|
echo '% rename binary file'
|
|
|
hg mv binfile.bin renamed.bin
|
|
|
hg diff --git
|
|
|
|
|
|
echo
|
|
|
echo '% diff across many revisions'
|
|
|
hg mv dst dst2
|
|
|
hg ci -m 'mv dst dst2' -d '0 0'
|
|
|
|
|
|
echo >> start
|
|
|
hg ci -m 'change start' -d '0 0'
|
|
|
|
|
|
hg revert -r -2 start
|
|
|
hg mv dst2 dst3
|
|
|
hg ci -m 'mv dst2 dst3; revert start' -d '0 0'
|
|
|
|
|
|
hg diff --git -r 9:11
|
|
|
|
|
|
echo a >> foo
|
|
|
hg add foo
|
|
|
hg ci -m 'add foo'
|
|
|
echo b >> foo
|
|
|
hg ci -m 'change foo'
|
|
|
hg mv foo bar
|
|
|
hg ci -m 'mv foo bar'
|
|
|
echo c >> bar
|
|
|
hg ci -m 'change bar'
|
|
|
|
|
|
echo
|
|
|
echo '% file created before r1 and renamed before r2'
|
|
|
hg diff --git -r -3:-1
|
|
|
echo
|
|
|
echo '% file created in r1 and renamed before r2'
|
|
|
hg diff --git -r -4:-1
|
|
|
echo
|
|
|
echo '% file created after r1 and renamed before r2'
|
|
|
hg diff --git -r -5:-1
|
|
|
|
|
|
echo
|
|
|
echo '% comparing with the working dir'
|
|
|
echo >> start
|
|
|
hg ci -m 'change start again' -d '0 0'
|
|
|
|
|
|
echo > created
|
|
|
hg add created
|
|
|
hg ci -m 'add created'
|
|
|
|
|
|
hg mv created created2
|
|
|
hg ci -m 'mv created created2'
|
|
|
|
|
|
hg mv created2 created3
|
|
|
echo "% there's a copy in the working dir..."
|
|
|
hg diff --git
|
|
|
echo
|
|
|
echo "% ...but there's another copy between the original rev and the wd"
|
|
|
hg diff --git -r -2
|
|
|
echo
|
|
|
echo "% ...but the source of the copy was created after the original rev"
|
|
|
hg diff --git -r -3
|
|
|
hg ci -m 'mv created2 created3'
|
|
|
|
|
|
echo > brand-new
|
|
|
hg add brand-new
|
|
|
hg ci -m 'add brand-new'
|
|
|
hg mv brand-new brand-new2
|
|
|
echo '% created in parent of wd; renamed in the wd'
|
|
|
hg diff --git
|
|
|
|
|
|
echo
|
|
|
echo '% created between r1 and parent of wd; renamed in the wd'
|
|
|
hg diff --git -r -2
|
|
|
hg ci -m 'mv brand-new brand-new2'
|
|
|
|
|
|
echo '% one file is copied to many destinations and removed'
|
|
|
hg cp brand-new2 brand-new3
|
|
|
hg mv brand-new2 brand-new3-2
|
|
|
hg ci -m 'multiple renames/copies'
|
|
|
hg diff --git -r -2 -r -1
|
|
|
|
|
|
echo '% there should be a trailing TAB if there are spaces in the file name'
|
|
|
echo foo > 'with spaces'
|
|
|
hg add 'with spaces'
|
|
|
hg diff --git
|
|
|
hg ci -m 'add filename with spaces'
|
|
|
|
|
|
|