##// END OF EJS Templates
addremove: correctly handle intermediate symlinks...
addremove: correctly handle intermediate symlinks This fixes problems mentioned in issue660 comments (unrelated to original issue) where directory was renamed, and symlink was added instead. In such situation addremove wasn't able to correctly detect that old files no longer here, but tried to add symlink (and failed due collision with old files).

File last commit:

r5264:0fc16031 default
r6651:7f0dd352 default
Show More
test-git-export
158 lines | 2.9 KiB | text/plain | TextLexer
Brendan Cully
Add diff --git option
r2907 #!/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'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 0
Brendan Cully
Add diff --git option
r2907
hg cp new copy
hg ci -mcopy -d '0 0'
echo '% copy'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 1:tip
Brendan Cully
Add diff --git option
r2907
hg mv copy rename
hg ci -mrename -d '0 0'
echo '% rename'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 2:tip
Brendan Cully
Add diff --git option
r2907
hg rm rename
hg ci -mdelete -d '0 0'
echo '% delete'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 3:tip
Brendan Cully
Add diff --git option
r2907
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'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 5:tip
Brendan Cully
Add diff --git option
r2907
hg mv src dst
chmod -x dst
echo a >> dst
hg ci -mrenamemod -d '0 0'
echo '% rename+mod+chmod'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 6:tip
Benoit Boissinot
git --diff: fix traceback when getting mode change...
r3066
echo '% nonexistent in tip+chmod'
Stephen Darnell
Add -D/--nodates options to hg diff/export that removes dates from diff headers...
r3199 hg diff --git -r 5:6
Brendan Cully
Add test for git binary diff support
r3368
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
Alexis S. L. Carvalho
diff: improve detection of renames when diffing across many revisions
r3693 echo
Alexis S. L. Carvalho
git patches: handle renames of binary files
r4092 echo '% rename binary file'
hg mv binfile.bin renamed.bin
hg diff --git
echo
Alexis S. L. Carvalho
diff: improve detection of renames when diffing across many revisions
r3693 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
Alexis S. L. Carvalho
Make hg diff --git -r revA:revB detect (inverted) copies if revA > revB
r5264 echo '% reversed'
hg diff --git -r 11:9
Alexis S. L. Carvalho
renamedbetween: only return (file, node) pairs that exist in the original rev
r3694
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
Alexis S. L. Carvalho
Make hg diff --git -r revA:revB detect (inverted) copies if revA > revB
r5264 echo '% reversed'
hg diff --git -r -1:-3
Alexis S. L. Carvalho
renamedbetween: only return (file, node) pairs that exist in the original rev
r3694 echo
echo '% file created in r1 and renamed before r2'
hg diff --git -r -4:-1
Alexis S. L. Carvalho
Make hg diff --git -r revA:revB detect (inverted) copies if revA > revB
r5264 echo '% reversed'
hg diff --git -r -1:-4
Alexis S. L. Carvalho
renamedbetween: only return (file, node) pairs that exist in the original rev
r3694 echo
echo '% file created after r1 and renamed before r2'
hg diff --git -r -5:-1
Alexis S. L. Carvalho
Make hg diff --git -r revA:revB detect (inverted) copies if revA > revB
r5264 echo '% reversed'
hg diff --git -r -1:-5
Alexis S. L. Carvalho
renamedbetween: only return (file, node) pairs that exist in the original rev
r3694
Alexis S. L. Carvalho
fix typo in mercurial/patch.py
r3695 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
Alexis S. L. Carvalho
diff: better detection of renames when comparing with the working dir.
r3696 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
Alexis S. L. Carvalho
Don't generate git patches that rename a file to multiple destinations...
r3702 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
Alexis S. L. Carvalho
Make hg diff --git -r revA:revB detect (inverted) copies if revA > revB
r5264 echo '% reversed'
hg diff --git -r -1 -r -2
Alexis S. L. Carvalho
Don't generate git patches that rename a file to multiple destinations...
r3702
Alexis S. L. Carvalho
git patches: correct handling of filenames with spaces...
r4679 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'