# HG changeset patch # User Adrian Buehlmann # Date 1283516968 -7200 # Node ID 927e1a67726740dc1dd2fb78f8ab3882e58cfb1a # Parent 968e9057ab8afbf147c71ee8e9f599be70b20afc tests: unify test-git-* diff -r 968e9057ab8a -r 927e1a677267 tests/test-git-export --- a/tests/test-git-export Fri Sep 03 11:47:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -#!/bin/sh - -hg init a -cd a - -echo start > start -hg ci -Amstart -echo new > new -hg ci -Amnew -echo '% new file' -hg diff --git -r 0 - -hg cp new copy -hg ci -mcopy -echo '% copy' -hg diff --git -r 1:tip - -hg mv copy rename -hg ci -mrename -echo '% rename' -hg diff --git -r 2:tip - -hg rm rename -hg ci -mdelete -echo '% delete' -hg diff --git -r 3:tip - -cat > src <> dst -hg ci -mrenamemod -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' - -echo >> start -hg ci -m 'change start' - -hg revert -r -2 start -hg mv dst2 dst3 -hg ci -m 'mv dst2 dst3; revert start' - -hg diff --git -r 9:11 -echo '% reversed' -hg diff --git -r 11:9 - -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 '% reversed' -hg diff --git -r -1:-3 -echo -echo '% file created in r1 and renamed before r2' -hg diff --git -r -4:-1 -echo '% reversed' -hg diff --git -r -1:-4 -echo -echo '% file created after r1 and renamed before r2' -hg diff --git -r -5:-1 -echo '% reversed' -hg diff --git -r -1:-5 - -echo -echo '% comparing with the working dir' -echo >> start -hg ci -m 'change start again' - -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 '% reversed' -hg diff --git -r -1 -r -2 - -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' - diff -r 968e9057ab8a -r 927e1a677267 tests/test-git-export.out --- a/tests/test-git-export.out Fri Sep 03 11:47:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -adding start -adding new -% new file -diff --git a/new b/new -new file mode 100644 ---- /dev/null -+++ b/new -@@ -0,0 +1,1 @@ -+new -% copy -diff --git a/new b/copy -copy from new -copy to copy -% rename -diff --git a/copy b/rename -rename from copy -rename to rename -% delete -diff --git a/rename b/rename -deleted file mode 100644 ---- a/rename -+++ /dev/null -@@ -1,1 +0,0 @@ --new -adding src -% chmod 644 -diff --git a/src b/src -old mode 100644 -new mode 100755 -% rename+mod+chmod -diff --git a/src b/dst -old mode 100755 -new mode 100644 -rename from src -rename to dst ---- a/src -+++ b/dst -@@ -3,3 +3,4 @@ - 3 - 4 - 5 -+a -% nonexistent in tip+chmod -diff --git a/src b/src -old mode 100644 -new mode 100755 -% binary diff -diff --git a/binfile.bin b/binfile.bin -new file mode 100644 -index 0000000000000000000000000000000000000000..37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9 -GIT binary patch -literal 593 -zc$@)I0W$NUkd -zX$nnYLt$-$V!?uy+1V%`z&Eh=ah|duER<4|QWhju3gb^nF*8iYobxWG-qqXl=2~5M -z*IoDB)sG^CfNuoBmqLTVU^<;@nwHP!1wrWd`{(mHo6VNXWtyh{alzqmsH*yYzpvLT -zLdYlXB*ODN003Z&P17_@)3Pi=i0wb04 start + $ hg ci -Amstart + adding start + +New file: + + $ echo new > new + $ hg ci -Amnew + adding new + $ hg diff --git -r 0 + diff --git a/new b/new + new file mode 100644 + --- /dev/null + +++ b/new + @@ -0,0 +1,1 @@ + +new + +Copy: + + $ hg cp new copy + $ hg ci -mcopy + $ hg diff --git -r 1:tip + diff --git a/new b/copy + copy from new + copy to copy + +Rename: + + $ hg mv copy rename + $ hg ci -mrename + $ hg diff --git -r 2:tip + diff --git a/copy b/rename + rename from copy + rename to rename + +Delete: + + $ hg rm rename + $ hg ci -mdelete + $ hg diff --git -r 3:tip + diff --git a/rename b/rename + deleted file mode 100644 + --- a/rename + +++ /dev/null + @@ -1,1 +0,0 @@ + -new + + $ cat > src < 1 + > 2 + > 3 + > 4 + > 5 + > EOF + $ hg ci -Amsrc + adding src + +chmod 644: + + $ chmod +x src + $ hg ci -munexec + $ hg diff --git -r 5:tip + diff --git a/src b/src + old mode 100644 + new mode 100755 + +Rename+mod+chmod: + + $ hg mv src dst + $ chmod -x dst + $ echo a >> dst + $ hg ci -mrenamemod + $ hg diff --git -r 6:tip + diff --git a/src b/dst + old mode 100755 + new mode 100644 + rename from src + rename to dst + --- a/src + +++ b/dst + @@ -3,3 +3,4 @@ + 3 + 4 + 5 + +a + +Nonexistent in tip+chmod: + + $ hg diff --git -r 5:6 + diff --git a/src b/src + old mode 100644 + new mode 100755 + +Binary diff: + + $ cp $TESTDIR/binfile.bin . + $ hg add binfile.bin + $ hg diff --git > b.diff + $ cat b.diff + diff --git a/binfile.bin b/binfile.bin + new file mode 100644 + index 0000000000000000000000000000000000000000..37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9 + GIT binary patch + literal 593 + zc$@)I0W$NUkd + zX$nnYLt$-$V!?uy+1V%`z&Eh=ah|duER<4|QWhju3gb^nF*8iYobxWG-qqXl=2~5M + z*IoDB)sG^CfNuoBmqLTVU^<;@nwHP!1wrWd`{(mHo6VNXWtyh{alzqmsH*yYzpvLT + zLdYlXB*ODN003Z&P17_@)3Pi=i0wb04> start + $ hg ci -m 'change start' + + $ hg revert -r -2 start + $ hg mv dst2 dst3 + $ hg ci -m 'mv dst2 dst3; revert start' + + $ hg diff --git -r 9:11 + diff --git a/dst2 b/dst3 + rename from dst2 + rename to dst3 + +Reversed: + + $ hg diff --git -r 11:9 + diff --git a/dst3 b/dst2 + rename from dst3 + rename to dst2 + + + $ 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' + +File created before r1 and renamed before r2: + + $ hg diff --git -r -3:-1 + diff --git a/foo b/bar + rename from foo + rename to bar + --- a/foo + +++ b/bar + @@ -1,2 +1,3 @@ + a + b + +c + +Reversed: + + $ hg diff --git -r -1:-3 + diff --git a/bar b/foo + rename from bar + rename to foo + --- a/bar + +++ b/foo + @@ -1,3 +1,2 @@ + a + b + -c + +File created in r1 and renamed before r2: + + $ hg diff --git -r -4:-1 + diff --git a/foo b/bar + rename from foo + rename to bar + --- a/foo + +++ b/bar + @@ -1,1 +1,3 @@ + a + +b + +c + +Reversed: + + $ hg diff --git -r -1:-4 + diff --git a/bar b/foo + rename from bar + rename to foo + --- a/bar + +++ b/foo + @@ -1,3 +1,1 @@ + a + -b + -c + +File created after r1 and renamed before r2: + + $ hg diff --git -r -5:-1 + diff --git a/bar b/bar + new file mode 100644 + --- /dev/null + +++ b/bar + @@ -0,0 +1,3 @@ + +a + +b + +c + +Reversed: + + $ hg diff --git -r -1:-5 + diff --git a/bar b/bar + deleted file mode 100644 + --- a/bar + +++ /dev/null + @@ -1,3 +0,0 @@ + -a + -b + -c + + +Comparing with the working dir: + + $ echo >> start + $ hg ci -m 'change start again' + + $ echo > created + $ hg add created + $ hg ci -m 'add created' + + $ hg mv created created2 + $ hg ci -m 'mv created created2' + + $ hg mv created2 created3 + +There's a copy in the working dir: + + $ hg diff --git + diff --git a/created2 b/created3 + rename from created2 + rename to created3 + +There's another copy between the original rev and the wd: + + $ hg diff --git -r -2 + diff --git a/created b/created3 + rename from created + rename to created3 + +The source of the copy was created after the original rev: + + $ hg diff --git -r -3 + diff --git a/created3 b/created3 + new file mode 100644 + --- /dev/null + +++ b/created3 + @@ -0,0 +1,1 @@ + + + $ 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 + +Created in parent of wd; renamed in the wd: + + $ hg diff --git + diff --git a/brand-new b/brand-new2 + rename from brand-new + rename to brand-new2 + +Created between r1 and parent of wd; renamed in the wd: + + $ hg diff --git -r -2 + diff --git a/brand-new2 b/brand-new2 + new file mode 100644 + --- /dev/null + +++ b/brand-new2 + @@ -0,0 +1,1 @@ + + + $ hg ci -m 'mv brand-new brand-new2' + +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 + diff --git a/brand-new2 b/brand-new3 + rename from brand-new2 + rename to brand-new3 + diff --git a/brand-new2 b/brand-new3-2 + copy from brand-new2 + copy to brand-new3-2 + +Reversed: + + $ hg diff --git -r -1 -r -2 + diff --git a/brand-new3 b/brand-new2 + rename from brand-new3 + rename to brand-new2 + diff --git a/brand-new3-2 b/brand-new3-2 + deleted file mode 100644 + --- a/brand-new3-2 + +++ /dev/null + @@ -1,1 +0,0 @@ + - + +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 + diff --git a/with spaces b/with spaces + new file mode 100644 + --- /dev/null + +++ b/with spaces + @@ -0,0 +1,1 @@ + +foo + $ hg ci -m 'add filename with spaces' + diff -r 968e9057ab8a -r 927e1a677267 tests/test-git-import --- a/tests/test-git-import Fri Sep 03 11:47:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,230 +0,0 @@ -#!/bin/sh - -hg init a -cd a - -echo % new file -hg import -d "1000000 0" -mnew - < foo -hg add foo -hg ci -m 'add foo' -echo % binary files and regular patch hunks -hg import -d "1000000 0" -m binaryregular - < diff --git a/new b/new + > new file mode 100644 + > index 0000000..7898192 + > --- /dev/null + > +++ b/new + > @@ -0,0 +1 @@ + > +a + > EOF + applying patch from stdin + + $ hg tip -q + 0:ae3ee40d2079 + +New empty file: + + $ hg import -d "1000000 0" -mempty - < diff --git a/empty b/empty + > new file mode 100644 + > EOF + applying patch from stdin + + $ hg tip -q + 1:ab199dc869b5 + + $ hg locate empty + empty + +chmod +x: + + $ hg import -d "1000000 0" -msetx - < diff --git a/new b/new + > old mode 100644 + > new mode 100755 + > EOF + applying patch from stdin + + $ hg tip -q + 2:3a34410f282e + + $ test -x new || echo failed + +Copy: + + $ hg import -d "1000000 0" -mcopy - < diff --git a/new b/copy + > old mode 100755 + > new mode 100644 + > similarity index 100% + > copy from new + > copy to copy + > diff --git a/new b/copyx + > similarity index 100% + > copy from new + > copy to copyx + > EOF + applying patch from stdin + + $ hg tip -q + 3:37bacb7ca14d + + $ if "$TESTDIR/hghave" -q execbit; then + > test -f copy -a ! -x copy || echo failed + > test -x copyx || echo failed + > else + > test -f copy || echo failed + > fi + + $ cat copy + a + + $ hg cat copy + a + +Rename: + + $ hg import -d "1000000 0" -mrename - < diff --git a/copy b/rename + > similarity index 100% + > rename from copy + > rename to rename + > EOF + applying patch from stdin + + $ hg tip -q + 4:47b81a94361d + + $ hg locate + copyx + empty + new + rename + +Delete: + + $ hg import -d "1000000 0" -mdelete - < diff --git a/copyx b/copyx + > deleted file mode 100755 + > index 7898192..0000000 + > --- a/copyx + > +++ /dev/null + > @@ -1 +0,0 @@ + > -a + > EOF + applying patch from stdin + + $ hg tip -q + 5:d9b001d98336 + + $ hg locate + empty + new + rename + + $ test -f copyx && echo failed || true + +Regular diff: + + $ hg import -d "1000000 0" -mregular - < diff --git a/rename b/rename + > index 7898192..72e1fe3 100644 + > --- a/rename + > +++ b/rename + > @@ -1 +1,5 @@ + > a + > +a + > +a + > +a + > +a + > EOF + applying patch from stdin + + $ hg tip -q + 6:ebe901e7576b + +Copy and modify: + + $ hg import -d "1000000 0" -mcopymod - < diff --git a/rename b/copy2 + > similarity index 80% + > copy from rename + > copy to copy2 + > index 72e1fe3..b53c148 100644 + > --- a/rename + > +++ b/copy2 + > @@ -1,5 +1,5 @@ + > a + > a + > -a + > +b + > a + > a + > EOF + applying patch from stdin + + $ hg tip -q + 7:18f368958ecd + + $ hg cat copy2 + a + a + b + a + a + +Rename and modify: + + $ hg import -d "1000000 0" -mrenamemod - < diff --git a/copy2 b/rename2 + > similarity index 80% + > rename from copy2 + > rename to rename2 + > index b53c148..8f81e29 100644 + > --- a/copy2 + > +++ b/rename2 + > @@ -1,5 +1,5 @@ + > a + > a + > b + > -a + > +c + > a + > EOF + applying patch from stdin + + $ hg tip -q + 8:c32b0d7e6f44 + + $ hg locate copy2 + $ hg cat rename2 + a + a + b + c + a + +One file renamed multiple times: + + $ hg import -d "1000000 0" -mmultirenames - < diff --git a/rename2 b/rename3 + > rename from rename2 + > rename to rename3 + > diff --git a/rename2 b/rename3-2 + > rename from rename2 + > rename to rename3-2 + > EOF + applying patch from stdin + + $ hg tip -q + 9:034a6bf95330 + + $ hg log -vr. --template '{rev} {files} / {file_copies}\n' + 9 rename2 rename3 rename3-2 / rename3 (rename2)rename3-2 (rename2) + + $ hg locate rename2 rename3 rename3-2 + rename3 + rename3-2 + + $ hg cat rename3 + a + a + b + c + a + + $ hg cat rename3-2 + a + a + b + c + a + + $ echo foo > foo + $ hg add foo + $ hg ci -m 'add foo' + +Binary files and regular patch hunks: + + $ hg import -d "1000000 0" -m binaryregular - < diff --git a/binary b/binary + > new file mode 100644 + > index 0000000000000000000000000000000000000000..593f4708db84ac8fd0f5cc47c634f38c013fe9e4 + > GIT binary patch + > literal 4 + > Lc\${NkU|;|M00aO5 + > + > diff --git a/foo b/foo2 + > rename from foo + > rename to foo2 + > EOF + applying patch from stdin + + $ hg tip -q + 11:c39bce63e786 + + $ cat foo2 + foo + + $ hg manifest --debug | grep binary + 045c85ba38952325e126c70962cc0f9d9077bc67 644 binary + +Multiple binary files: + + $ hg import -d "1000000 0" -m multibinary - < diff --git a/mbinary1 b/mbinary1 + > new file mode 100644 + > index 0000000000000000000000000000000000000000..593f4708db84ac8fd0f5cc47c634f38c013fe9e4 + > GIT binary patch + > literal 4 + > Lc\${NkU|;|M00aO5 + > + > diff --git a/mbinary2 b/mbinary2 + > new file mode 100644 + > index 0000000000000000000000000000000000000000..112363ac1917b417ffbd7f376ca786a1e5fa7490 + > GIT binary patch + > literal 5 + > Mc\${NkU|\`?^000jF3jhEB + > + > EOF + applying patch from stdin + + $ hg tip -q + 12:30b530085242 + + $ hg manifest --debug | grep mbinary + 045c85ba38952325e126c70962cc0f9d9077bc67 644 mbinary1 + a874b471193996e7cb034bb301cac7bdaf3e3f46 644 mbinary2 + +Filenames with spaces: + + $ hg import -d "1000000 0" -m spaces - < diff --git a/foo bar b/foo bar + > new file mode 100644 + > index 0000000..257cc56 + > --- /dev/null + > +++ b/foo bar + > @@ -0,0 +1 @@ + > +foo + > EOF + applying patch from stdin + + $ hg tip -q + 13:04750ef42fb3 + + $ cat "foo bar" + foo + +Copy then modify the original file: + + $ hg import -d "1000000 0" -m copy-mod-orig - < diff --git a/foo2 b/foo2 + > index 257cc56..fe08ec6 100644 + > --- a/foo2 + > +++ b/foo2 + > @@ -1 +1,2 @@ + > foo + > +new line + > diff --git a/foo2 b/foo3 + > similarity index 100% + > copy from foo2 + > copy to foo3 + > EOF + applying patch from stdin + + $ hg tip -q + 14:c4cd9cdeaa74 + + $ cat foo3 + foo +