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
+