test-git-export.t
615 lines
| 11.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-git-export.t
Adrian Buehlmann
|
r12193 | $ hg init | ||
$ echo start > start | ||||
$ hg ci -Amstart | ||||
adding start | ||||
New file: | ||||
Siddharth Agarwal
|
r24432 | $ mkdir dir1 | ||
$ echo new > dir1/new | ||||
Adrian Buehlmann
|
r12193 | $ hg ci -Amnew | ||
Siddharth Agarwal
|
r24432 | adding dir1/new | ||
Adrian Buehlmann
|
r12193 | $ hg diff --git -r 0 | ||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/new | ||
Adrian Buehlmann
|
r12193 | new file mode 100644 | ||
--- /dev/null | ||||
Siddharth Agarwal
|
r24432 | +++ b/dir1/new | ||
Adrian Buehlmann
|
r12193 | @@ -0,0 +1,1 @@ | ||
+new | ||||
Copy: | ||||
Siddharth Agarwal
|
r24432 | $ mkdir dir2 | ||
$ hg cp dir1/new dir1/copy | ||||
$ echo copy1 >> dir1/copy | ||||
$ hg cp dir1/new dir2/copy | ||||
$ echo copy2 >> dir2/copy | ||||
Adrian Buehlmann
|
r12193 | $ hg ci -mcopy | ||
$ hg diff --git -r 1:tip | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/copy | ||
copy from dir1/new | ||||
copy to dir1/copy | ||||
--- a/dir1/new | ||||
+++ b/dir1/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
diff --git a/dir1/new b/dir2/copy | ||||
copy from dir1/new | ||||
copy to dir2/copy | ||||
--- a/dir1/new | ||||
+++ b/dir2/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy2 | ||||
Cross and same-directory copies with a relative root: | ||||
Sean Farley
|
r24455 | $ hg diff --git --root .. -r 1:tip | ||
Siddharth Agarwal
|
r24432 | abort: .. not under root '$TESTTMP' | ||
[255] | ||||
Sean Farley
|
r24455 | $ hg diff --git --root doesnotexist -r 1:tip | ||
$ hg diff --git --root . -r 1:tip | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/copy | ||
copy from dir1/new | ||||
copy to dir1/copy | ||||
--- a/dir1/new | ||||
+++ b/dir1/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
diff --git a/dir1/new b/dir2/copy | ||||
copy from dir1/new | ||||
copy to dir2/copy | ||||
--- a/dir1/new | ||||
+++ b/dir2/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy2 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root dir1 -r 1:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/new b/copy | ||
copy from new | ||||
copy to copy | ||||
--- a/new | ||||
+++ b/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root dir2/ -r 1:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/copy b/copy | ||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/copy | ||||
@@ -0,0 +1,2 @@ | ||||
+new | ||||
+copy2 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root dir1 -r 1:tip -I '**/copy' | ||
Adrian Buehlmann
|
r12193 | diff --git a/new b/copy | ||
copy from new | ||||
copy to copy | ||||
Siddharth Agarwal
|
r24432 | --- a/new | ||
+++ b/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root dir1 -r 1:tip dir2 | ||
Siddharth Agarwal
|
r24432 | warning: dir2 not inside relative root dir1 | ||
Sean Farley
|
r24455 | $ hg diff --git --root dir1 -r 1:tip 'dir2/{copy}' | ||
Matt Harbison
|
r24501 | warning: dir2/{copy} not inside relative root dir1 (glob) | ||
Siddharth Agarwal
|
r24432 | |||
$ cd dir1 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root .. -r 1:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/copy | ||
copy from dir1/new | ||||
copy to dir1/copy | ||||
--- a/dir1/new | ||||
+++ b/dir1/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
diff --git a/dir1/new b/dir2/copy | ||||
copy from dir1/new | ||||
copy to dir2/copy | ||||
--- a/dir1/new | ||||
+++ b/dir2/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy2 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root ../.. -r 1:tip | ||
Siddharth Agarwal
|
r24432 | abort: ../.. not under root '$TESTTMP' | ||
[255] | ||||
Sean Farley
|
r24455 | $ hg diff --git --root ../doesnotexist -r 1:tip | ||
$ hg diff --git --root .. -r 1:tip | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/copy | ||
copy from dir1/new | ||||
copy to dir1/copy | ||||
--- a/dir1/new | ||||
+++ b/dir1/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
diff --git a/dir1/new b/dir2/copy | ||||
copy from dir1/new | ||||
copy to dir2/copy | ||||
--- a/dir1/new | ||||
+++ b/dir2/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy2 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root . -r 1:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/new b/copy | ||
copy from new | ||||
copy to copy | ||||
--- a/new | ||||
+++ b/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root . -r 1:tip copy | ||
Siddharth Agarwal
|
r24432 | diff --git a/new b/copy | ||
copy from new | ||||
copy to copy | ||||
--- a/new | ||||
+++ b/copy | ||||
@@ -1,1 +1,2 @@ | ||||
new | ||||
+copy1 | ||||
Sean Farley
|
r24455 | $ hg diff --git --root . -r 1:tip ../dir2 | ||
Matt Harbison
|
r24501 | warning: ../dir2 not inside relative root . (glob) | ||
Sean Farley
|
r24455 | $ hg diff --git --root . -r 1:tip '../dir2/*' | ||
Matt Harbison
|
r24501 | warning: ../dir2/* not inside relative root . (glob) | ||
Siddharth Agarwal
|
r24432 | $ cd .. | ||
Adrian Buehlmann
|
r12193 | |||
Rename: | ||||
Siddharth Agarwal
|
r24432 | $ hg mv dir1/copy dir1/rename1 | ||
$ echo rename1 >> dir1/rename1 | ||||
$ hg mv dir2/copy dir1/rename2 | ||||
$ echo rename2 >> dir1/rename2 | ||||
Adrian Buehlmann
|
r12193 | $ hg ci -mrename | ||
$ hg diff --git -r 2:tip | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/copy b/dir1/rename1 | ||
rename from dir1/copy | ||||
rename to dir1/rename1 | ||||
--- a/dir1/copy | ||||
+++ b/dir1/rename1 | ||||
@@ -1,2 +1,3 @@ | ||||
new | ||||
copy1 | ||||
+rename1 | ||||
diff --git a/dir2/copy b/dir1/rename2 | ||||
rename from dir2/copy | ||||
rename to dir1/rename2 | ||||
--- a/dir2/copy | ||||
+++ b/dir1/rename2 | ||||
@@ -1,2 +1,3 @@ | ||||
new | ||||
copy2 | ||||
+rename2 | ||||
Cross and same-directory renames with a relative root: | ||||
Sean Farley
|
r24455 | $ hg diff --root dir1 --git -r 2:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/copy b/rename1 | ||
Adrian Buehlmann
|
r12193 | rename from copy | ||
Siddharth Agarwal
|
r24432 | rename to rename1 | ||
--- a/copy | ||||
+++ b/rename1 | ||||
@@ -1,2 +1,3 @@ | ||||
new | ||||
copy1 | ||||
+rename1 | ||||
diff --git a/rename2 b/rename2 | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/rename2 | ||||
@@ -0,0 +1,3 @@ | ||||
+new | ||||
+copy2 | ||||
+rename2 | ||||
Sean Farley
|
r24455 | $ hg diff --root dir2 --git -r 2:tip | ||
Siddharth Agarwal
|
r24432 | diff --git a/copy b/copy | ||
deleted file mode 100644 | ||||
--- a/copy | ||||
+++ /dev/null | ||||
@@ -1,2 +0,0 @@ | ||||
-new | ||||
-copy2 | ||||
Sean Farley
|
r24455 | $ hg diff --root dir1 --git -r 2:tip -I '**/copy' | ||
Siddharth Agarwal
|
r24432 | diff --git a/copy b/copy | ||
deleted file mode 100644 | ||||
--- a/copy | ||||
+++ /dev/null | ||||
@@ -1,2 +0,0 @@ | ||||
-new | ||||
-copy1 | ||||
Sean Farley
|
r24455 | $ hg diff --root dir1 --git -r 2:tip -I '**/rename*' | ||
Siddharth Agarwal
|
r24432 | diff --git a/copy b/rename1 | ||
copy from copy | ||||
copy to rename1 | ||||
--- a/copy | ||||
+++ b/rename1 | ||||
@@ -1,2 +1,3 @@ | ||||
new | ||||
copy1 | ||||
+rename1 | ||||
diff --git a/rename2 b/rename2 | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/rename2 | ||||
@@ -0,0 +1,3 @@ | ||||
+new | ||||
+copy2 | ||||
+rename2 | ||||
Adrian Buehlmann
|
r12193 | |||
Delete: | ||||
Siddharth Agarwal
|
r24432 | $ hg rm dir1/* | ||
Adrian Buehlmann
|
r12193 | $ hg ci -mdelete | ||
$ hg diff --git -r 3:tip | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/new b/dir1/new | ||
Adrian Buehlmann
|
r12193 | deleted file mode 100644 | ||
Siddharth Agarwal
|
r24432 | --- a/dir1/new | ||
Adrian Buehlmann
|
r12193 | +++ /dev/null | ||
@@ -1,1 +0,0 @@ | ||||
-new | ||||
Siddharth Agarwal
|
r24432 | diff --git a/dir1/rename1 b/dir1/rename1 | ||
deleted file mode 100644 | ||||
--- a/dir1/rename1 | ||||
+++ /dev/null | ||||
@@ -1,3 +0,0 @@ | ||||
-new | ||||
-copy1 | ||||
-rename1 | ||||
diff --git a/dir1/rename2 b/dir1/rename2 | ||||
deleted file mode 100644 | ||||
--- a/dir1/rename2 | ||||
+++ /dev/null | ||||
@@ -1,3 +0,0 @@ | ||||
-new | ||||
-copy2 | ||||
-rename2 | ||||
Adrian Buehlmann
|
r12193 | |||
$ cat > src <<EOF | ||||
> 1 | ||||
> 2 | ||||
> 3 | ||||
> 4 | ||||
> 5 | ||||
> EOF | ||||
$ hg ci -Amsrc | ||||
adding src | ||||
Mads Kiilerich
|
r16899 | #if execbit | ||
Adrian Buehlmann
|
r12193 | 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 | ||||
Mads Kiilerich
|
r16899 | #else | ||
Dummy changes when no exec bit, mocking the execbit commit structure | ||||
$ echo change >> src | ||||
$ hg ci -munexec | ||||
$ hg mv src dst | ||||
$ hg ci -mrenamemod | ||||
#endif | ||||
Adrian Buehlmann
|
r12193 | Binary diff: | ||
Thomas Arendsen Hein
|
r16350 | $ cp "$TESTDIR/binfile.bin" . | ||
Adrian Buehlmann
|
r12193 | $ hg add binfile.bin | ||
$ hg diff --git > b.diff | ||||
$ cat b.diff | ||||
diff --git a/binfile.bin b/binfile.bin | ||||
new file mode 100644 | ||||
Johan Bjork
|
r19875 | index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..37ba3d1c6f17137d9c5f5776fa040caf5fe73ff9 | ||
Adrian Buehlmann
|
r12193 | 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 | ||||
Thomas Arendsen Hein
|
r16350 | $ cmp binfile.bin "$TESTDIR/binfile.bin" | ||
Adrian Buehlmann
|
r12193 | |||
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 | ||||
Mads Kiilerich
|
r18355 | diff --git a/brand-new3-2 b/brand-new2 | ||
rename from brand-new3-2 | ||||
Adrian Buehlmann
|
r12193 | rename to brand-new2 | ||
Mads Kiilerich
|
r18355 | diff --git a/brand-new3 b/brand-new3 | ||
Adrian Buehlmann
|
r12193 | deleted file mode 100644 | ||
Mads Kiilerich
|
r18355 | --- a/brand-new3 | ||
Adrian Buehlmann
|
r12193 | +++ /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' | ||||
Johan Bjork
|
r19973 | Additions should be properly marked even in the middle of a merge | ||
$ hg up -r -2 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ echo "New File" >> inmerge | ||||
$ hg add inmerge | ||||
$ hg ci -m "file in merge" | ||||
created new head | ||||
$ hg up 23 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg merge | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg diff -g | ||||
diff --git a/inmerge b/inmerge | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/inmerge | ||||
@@ -0,0 +1,1 @@ | ||||
+New File | ||||