Mercurial > hg
changeset 12193:927e1a677267
tests: unify test-git-*
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Fri, 03 Sep 2010 14:29:28 +0200 |
parents | 968e9057ab8a |
children | 9e40ea08c2ab |
files | tests/test-git-export tests/test-git-export.out tests/test-git-export.t tests/test-git-import tests/test-git-import.out tests/test-git-import.t |
diffstat | 6 files changed, 684 insertions(+), 667 deletions(-) [+] |
line wrap: on
line diff
--- 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 <<EOF -1 -2 -3 -4 -5 -EOF -hg ci -Amsrc -chmod +x src -hg ci -munexec -echo '% chmod 644' -hg diff --git -r 5:tip - -hg mv src dst -chmod -x dst -echo a >> 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' -
--- 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$@)I0<QguP)<h;3K|Lk000e1NJLTq000mG000mO0ssI2kdbIM00009a7bBm000XU -z000XU0RWnu7ytkO2XskIMF-Uh9TW;VpMjwv0005-Nkl<ZD9@FWPs=e;7{<>W$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 -zLdY<T=ks|woh-`&01!ej#(xbV1f|pI*=%;d-%F*E*X#ZH`4I%6SS+$EJDE&ct=8po -ziN#{?_j|kD%Cd|oiqds`xm@;oJ-^?NG3Gdqrs?5u*zI;{nogxsx~^|Fn^Y?Gdc6<; -zfMJ+iF1J`LMx&A2?dEwNW8ClebzPTbIh{@$hS6*`kH@1d%Lo7fA#}N1)oN7`gm$~V -z+wDx#)OFqMcE{s!JN0-xhG8ItAjVkJwEcb`3WWlJfU2r?;Pd%dmR+q@mSri5q9_W- -zaR2~ECX?B2w+zELozC0s*6Z~|QG^f{3I#<`?)Q7U-JZ|q5W;9Q8i_=pBuSzunx=U; -z9C)5jBoYw9^?EHyQl(M}1OlQcCX>lXB*ODN003Z&P17_@)3Pi=i0wb04<W?v-u}7K -zXmmQA+wDgE!qR9o8jr`%=ab_&uh(l?R=r;Tjiqon91I2-hIu?57~@*4h7h9uORK#= -fQItJW-{SoTm)8|5##k|m00000NkvXXu0mjf{mKw4 - -% import binary diff -applying b.diff - -% rename binary file -diff --git a/binfile.bin b/renamed.bin -rename from binfile.bin -rename to renamed.bin - -% diff across many revisions -diff --git a/dst2 b/dst3 -rename from dst2 -rename to dst3 -% reversed -diff --git a/dst3 b/dst2 -rename from dst3 -rename to dst2 - -% file created before r1 and renamed before r2 -diff --git a/foo b/bar -rename from foo -rename to bar ---- a/foo -+++ b/bar -@@ -1,2 +1,3 @@ - a - b -+c -% reversed -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 -diff --git a/foo b/bar -rename from foo -rename to bar ---- a/foo -+++ b/bar -@@ -1,1 +1,3 @@ - a -+b -+c -% reversed -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 -diff --git a/bar b/bar -new file mode 100644 ---- /dev/null -+++ b/bar -@@ -0,0 +1,3 @@ -+a -+b -+c -% reversed -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 -% there's a copy in the working dir... -diff --git a/created2 b/created3 -rename from created2 -rename to created3 - -% ...but there's another copy between the original rev and the wd -diff --git a/created b/created3 -rename from created -rename to created3 - -% ...but the source of the copy was created after the original rev -diff --git a/created3 b/created3 -new file mode 100644 ---- /dev/null -+++ b/created3 -@@ -0,0 +1,1 @@ -+ -% created in parent of wd; renamed in the wd -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 -diff --git a/brand-new2 b/brand-new2 -new file mode 100644 ---- /dev/null -+++ b/brand-new2 -@@ -0,0 +1,1 @@ -+ -% one file is copied to many destinations and removed -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 -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 -diff --git a/with spaces b/with spaces -new file mode 100644 ---- /dev/null -+++ b/with spaces -@@ -0,0 +1,1 @@ -+foo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-git-export.t Fri Sep 03 14:29:28 2010 +0200 @@ -0,0 +1,349 @@ + $ hg init + $ echo start > 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 <<EOF + > 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$@)I0<QguP)<h;3K|Lk000e1NJLTq000mG000mO0ssI2kdbIM00009a7bBm000XU + z000XU0RWnu7ytkO2XskIMF-Uh9TW;VpMjwv0005-Nkl<ZD9@FWPs=e;7{<>W$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 + zLdY<T=ks|woh-`&01!ej#(xbV1f|pI*=%;d-%F*E*X#ZH`4I%6SS+$EJDE&ct=8po + ziN#{?_j|kD%Cd|oiqds`xm@;oJ-^?NG3Gdqrs?5u*zI;{nogxsx~^|Fn^Y?Gdc6<; + zfMJ+iF1J`LMx&A2?dEwNW8ClebzPTbIh{@$hS6*`kH@1d%Lo7fA#}N1)oN7`gm$~V + z+wDx#)OFqMcE{s!JN0-xhG8ItAjVkJwEcb`3WWlJfU2r?;Pd%dmR+q@mSri5q9_W- + zaR2~ECX?B2w+zELozC0s*6Z~|QG^f{3I#<`?)Q7U-JZ|q5W;9Q8i_=pBuSzunx=U; + z9C)5jBoYw9^?EHyQl(M}1OlQcCX>lXB*ODN003Z&P17_@)3Pi=i0wb04<W?v-u}7K + zXmmQA+wDgE!qR9o8jr`%=ab_&uh(l?R=r;Tjiqon91I2-hIu?57~@*4h7h9uORK#= + fQItJW-{SoTm)8|5##k|m00000NkvXXu0mjf{mKw4 + + +Import binary diff: + + $ hg revert binfile.bin + $ rm binfile.bin + $ hg import -mfoo b.diff + applying b.diff + $ cmp binfile.bin $TESTDIR/binfile.bin + +Rename binary file: + + $ hg mv binfile.bin renamed.bin + $ hg diff --git + diff --git a/binfile.bin b/renamed.bin + rename from binfile.bin + rename to renamed.bin + +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 + 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' +
--- 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 - <<EOF -diff --git a/new b/new -new file mode 100644 -index 0000000..7898192 ---- /dev/null -+++ b/new -@@ -0,0 +1 @@ -+a -EOF -hg tip -q - -echo % new empty file -hg import -d "1000000 0" -mempty - <<EOF -diff --git a/empty b/empty -new file mode 100644 -EOF -hg tip -q -hg locate empty - -echo % chmod +x -hg import -d "1000000 0" -msetx - <<EOF -diff --git a/new b/new -old mode 100644 -new mode 100755 -EOF -hg tip -q - -test -x new || echo failed - -echo % copy -hg import -d "1000000 0" -mcopy - <<EOF -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 -hg tip -q - -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 -hg cat copy - -echo % rename -hg import -d "1000000 0" -mrename - <<EOF -diff --git a/copy b/rename -similarity index 100% -rename from copy -rename to rename -EOF -hg tip -q - -hg locate - -echo % delete -hg import -d "1000000 0" -mdelete - <<EOF -diff --git a/copyx b/copyx -deleted file mode 100755 -index 7898192..0000000 ---- a/copyx -+++ /dev/null -@@ -1 +0,0 @@ --a -EOF -hg tip -q - -hg locate -test -f copyx && echo failed || true - -echo % regular diff -hg import -d "1000000 0" -mregular - <<EOF -diff --git a/rename b/rename -index 7898192..72e1fe3 100644 ---- a/rename -+++ b/rename -@@ -1 +1,5 @@ - a -+a -+a -+a -+a -EOF -hg tip -q - -echo % copy and modify -hg import -d "1000000 0" -mcopymod - <<EOF -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 -hg tip -q - -hg cat copy2 - -echo % rename and modify -hg import -d "1000000 0" -mrenamemod - <<EOF -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 -hg tip -q - -hg locate copy2 -hg cat rename2 - -echo % one file renamed multiple times -hg import -d "1000000 0" -mmultirenames - <<EOF -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 -hg tip -q -hg log -vr. --template '{rev} {files} / {file_copies}\n' - -hg locate rename2 rename3 rename3-2 -hg cat rename3 -echo -hg cat rename3-2 - -echo foo > foo -hg add foo -hg ci -m 'add foo' -echo % binary files and regular patch hunks -hg import -d "1000000 0" -m binaryregular - <<EOF -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 -hg tip -q -cat foo2 -hg manifest --debug | grep binary - -echo % many binary files -hg import -d "1000000 0" -m multibinary - <<EOF -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 -hg tip -q -hg manifest --debug | grep mbinary - -echo % filenames with spaces -hg import -d "1000000 0" -m spaces - <<EOF -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 -hg tip -q -cat "foo bar" - -echo % copy then modify the original file -hg import -d "1000000 0" -m copy-mod-orig - <<EOF -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 -hg tip -q - -cat foo3
--- a/tests/test-git-import.out Fri Sep 03 11:47:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -% new file -applying patch from stdin -0:ae3ee40d2079 -% new empty file -applying patch from stdin -1:ab199dc869b5 -empty -% chmod +x -applying patch from stdin -2:3a34410f282e -% copy -applying patch from stdin -3:37bacb7ca14d -a -a -% rename -applying patch from stdin -4:47b81a94361d -copyx -empty -new -rename -% delete -applying patch from stdin -5:d9b001d98336 -empty -new -rename -% regular diff -applying patch from stdin -6:ebe901e7576b -% copy and modify -applying patch from stdin -7:18f368958ecd -a -a -b -a -a -% rename and modify -applying patch from stdin -8:c32b0d7e6f44 -a -a -b -c -a -% one file renamed multiple times -applying patch from stdin -9:034a6bf95330 -9 rename2 rename3 rename3-2 / rename3 (rename2)rename3-2 (rename2) -rename3 -rename3-2 -a -a -b -c -a - -a -a -b -c -a -% binary files and regular patch hunks -applying patch from stdin -11:c39bce63e786 -foo -045c85ba38952325e126c70962cc0f9d9077bc67 644 binary -% many binary files -applying patch from stdin -12:30b530085242 -045c85ba38952325e126c70962cc0f9d9077bc67 644 mbinary1 -a874b471193996e7cb034bb301cac7bdaf3e3f46 644 mbinary2 -% filenames with spaces -applying patch from stdin -13:04750ef42fb3 -foo -% copy then modify the original file -applying patch from stdin -14:c4cd9cdeaa74 -foo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-git-import.t Fri Sep 03 14:29:28 2010 +0200 @@ -0,0 +1,335 @@ + + $ hg init + +New file: + + $ hg import -d "1000000 0" -mnew - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 - <<EOF + > 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 +