##// END OF EJS Templates
diff: improve detection of renames when diffing across many revisions
diff: improve detection of renames when diffing across many revisions

File last commit:

r3693:454b3a8c default
r3693:454b3a8c default
Show More
test-git-export
75 lines | 1.1 KiB | text/plain | TextLexer
#!/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 '% 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