Mercurial > hg
annotate tests/test-import-bypass.t @ 31454:a5bad127128d
branchmap: handle nullrev in setcachedata
906be86990 recently changed to switch from:
self._rbcrevs[rbcrevidx:rbcrevidx + _rbcrecsize] = rec
to
pack_into(_rbcrecfmt, self._rbcrevs, rbcrevidx, node, branchidx)
This causes an exception if rbcrevidx is -1 (i.e. the nullrev). The old code
handled this because python handles out of bound sets to arrays gracefully. The
new code throws because the self._rbcrevs buffer isn't long enough to write 8
bytes to. Normally it would've been resized by the immediately preceding line,
but because the 0 length buffer is greater than the idx (-1) times the size, no
resize happens.
Setting the branch for the nullrev doesn't make sense anyway, so let's skip it.
This was caught by external tests in the Facebook extensions repo, but I've
added a test here that catches the issue.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 15 Mar 2017 15:48:57 -0700 |
parents | 50f2966f86ca |
children | eb586ed5d8ce |
rev | line source |
---|---|
14611 | 1 $ echo "[extensions]" >> $HGRCPATH |
2 $ echo "purge=" >> $HGRCPATH | |
3 | |
4 $ shortlog() { | |
20117
aa9385f983fa
tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents:
16913
diff
changeset
|
5 > hg log -G --template '{rev}:{node|short} {author} {date|hgdate} - {branch} - {desc|firstline}\n' |
14611 | 6 > } |
7 | |
8 Test --bypass with other options | |
9 | |
10 $ hg init repo-options | |
11 $ cd repo-options | |
12 $ echo a > a | |
13 $ hg ci -Am adda | |
14 adding a | |
15 $ echo a >> a | |
16 $ hg branch foo | |
17 marked working directory as branch foo | |
15615 | 18 (branches are permanent and global, did you want a bookmark?) |
14611 | 19 $ hg ci -Am changea |
20 $ hg export . > ../test.diff | |
21 $ hg up null | |
22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
23 | |
24 Test importing an existing revision | |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
25 (this also tests that "hg import" disallows combination of '--exact' |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
26 and '--edit') |
14611 | 27 |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
28 $ hg import --bypass --exact --edit ../test.diff |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
29 abort: cannot use --exact with --edit |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
30 [255] |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
31 $ hg import --bypass --exact ../test.diff |
14611 | 32 applying ../test.diff |
33 $ shortlog | |
34 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
35 | | |
36 o 0:07f494440405 test 0 0 - default - adda | |
37 | |
38 | |
39 Test failure without --exact | |
40 | |
41 $ hg import --bypass ../test.diff | |
42 applying ../test.diff | |
43 unable to find 'a' for patching | |
29900
50f2966f86ca
import: report directory-relative paths in error messages (issue5224)
liscju <piotr.listkiewicz@gmail.com>
parents:
24260
diff
changeset
|
44 (use '--prefix' to apply patch relative to the current directory) |
14611 | 45 abort: patch failed to apply |
46 [255] | |
47 $ hg st | |
48 $ shortlog | |
49 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
50 | | |
51 o 0:07f494440405 test 0 0 - default - adda | |
52 | |
53 | |
54 Test --user, --date and --message | |
55 | |
56 $ hg up 0 | |
57 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
58 $ hg import --bypass --u test2 -d '1 0' -m patch2 ../test.diff | |
59 applying ../test.diff | |
60 $ cat .hg/last-message.txt | |
61 patch2 (no-eol) | |
62 $ shortlog | |
63 o 2:2e127d1da504 test2 1 0 - default - patch2 | |
64 | | |
65 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
66 |/ | |
67 @ 0:07f494440405 test 0 0 - default - adda | |
68 | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
69 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
70 repository tip rolled back to revision 1 (undo import) |
14611 | 71 |
72 Test --import-branch | |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
73 (this also tests that editor is not invoked for '--bypass', if the |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
74 patch contains the commit message, regardless of '--edit') |
14611 | 75 |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
76 $ HGEDITOR=cat hg import --bypass --import-branch --edit ../test.diff |
14611 | 77 applying ../test.diff |
78 $ shortlog | |
79 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
80 | | |
81 @ 0:07f494440405 test 0 0 - default - adda | |
82 | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
83 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
84 repository tip rolled back to revision 1 (undo import) |
14611 | 85 |
86 Test --strip | |
87 | |
88 $ hg import --bypass --strip 0 - <<EOF | |
89 > # HG changeset patch | |
90 > # User test | |
91 > # Date 0 0 | |
92 > # Branch foo | |
93 > # Node ID 4e322f7ce8e3e4203950eac9ece27bf7e45ffa6c | |
94 > # Parent 07f4944404050f47db2e5c5071e0e84e7a27bba9 | |
95 > changea | |
96 > | |
97 > diff -r 07f494440405 -r 4e322f7ce8e3 a | |
98 > --- a Thu Jan 01 00:00:00 1970 +0000 | |
99 > +++ a Thu Jan 01 00:00:00 1970 +0000 | |
100 > @@ -1,1 +1,2 @@ | |
101 > a | |
102 > +a | |
103 > EOF | |
104 applying patch from stdin | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
105 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
106 repository tip rolled back to revision 1 (undo import) |
14611 | 107 |
24260
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
108 Test --strip with --bypass |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
109 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
110 $ mkdir -p dir/dir2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
111 $ echo bb > dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
112 $ echo cc > dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
113 $ echo d > dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
114 $ hg ci -Am 'addabcd' |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
115 adding dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
116 adding dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
117 adding dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
118 $ shortlog |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
119 @ 2:d805bc8236b6 test 0 0 - default - addabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
120 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
121 | o 1:4e322f7ce8e3 test 0 0 - foo - changea |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
122 |/ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
123 o 0:07f494440405 test 0 0 - default - adda |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
124 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
125 $ hg import --bypass --strip 2 --prefix dir/ - <<EOF |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
126 > # HG changeset patch |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
127 > # User test |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
128 > # Date 0 0 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
129 > # Branch foo |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
130 > changeabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
131 > |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
132 > diff --git a/foo/a b/foo/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
133 > new file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
134 > --- /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
135 > +++ b/foo/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
136 > @@ -0,0 +1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
137 > +a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
138 > diff --git a/foo/dir2/b b/foo/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
139 > rename from foo/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
140 > rename to foo/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
141 > diff --git a/foo/dir2/c b/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
142 > --- a/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
143 > +++ b/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
144 > @@ -0,0 +1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
145 > +cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
146 > diff --git a/foo/d b/foo/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
147 > deleted file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
148 > --- a/foo/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
149 > +++ /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
150 > @@ -1,1 +0,0 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
151 > -d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
152 > EOF |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
153 applying patch from stdin |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
154 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
155 $ shortlog |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
156 o 3:5bd46886ca3e test 0 0 - default - changeabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
157 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
158 @ 2:d805bc8236b6 test 0 0 - default - addabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
159 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
160 | o 1:4e322f7ce8e3 test 0 0 - foo - changea |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
161 |/ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
162 o 0:07f494440405 test 0 0 - default - adda |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
163 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
164 $ hg diff --change 3 --git |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
165 diff --git a/dir/a b/dir/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
166 new file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
167 --- /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
168 +++ b/dir/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
169 @@ -0,0 +1,1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
170 +a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
171 diff --git a/dir/d b/dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
172 deleted file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
173 --- a/dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
174 +++ /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
175 @@ -1,1 +0,0 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
176 -d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
177 diff --git a/dir/dir2/b b/dir/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
178 rename from dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
179 rename to dir/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
180 diff --git a/dir/dir2/c b/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
181 --- a/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
182 +++ b/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
183 @@ -1,1 +1,2 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
184 cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
185 +cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
186 $ hg -q --config extensions.strip= strip . |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
187 |
14611 | 188 Test unsupported combinations |
189 | |
190 $ hg import --bypass --no-commit ../test.diff | |
191 abort: cannot use --no-commit with --bypass | |
192 [255] | |
193 $ hg import --bypass --similarity 50 ../test.diff | |
194 abort: cannot use --similarity with --bypass | |
195 [255] | |
24258
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
196 $ hg import --exact --prefix dir/ ../test.diff |
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
197 abort: cannot use --exact with --prefix |
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
198 [255] |
14611 | 199 |
200 Test commit editor | |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
201 (this also tests that editor is invoked, if the patch doesn't contain |
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
202 the commit message, regardless of '--edit') |
14611 | 203 |
16124
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
204 $ cat > ../test.diff <<EOF |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
205 > diff -r 07f494440405 -r 4e322f7ce8e3 a |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
206 > --- a/a Thu Jan 01 00:00:00 1970 +0000 |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
207 > +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
208 > @@ -1,1 +1,2 @@ |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
209 > -a |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
210 > +b |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
211 > +c |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
212 > EOF |
14611 | 213 $ HGEDITOR=cat hg import --bypass ../test.diff |
214 applying ../test.diff | |
215 | |
216 | |
217 HG: Enter commit message. Lines beginning with 'HG:' are removed. | |
218 HG: Leave message empty to abort commit. | |
219 HG: -- | |
220 HG: user: test | |
221 HG: branch 'default' | |
222 HG: changed a | |
223 abort: empty commit message | |
224 [255] | |
225 | |
226 Test patch.eol is handled | |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
227 (this also tests that editor is not invoked for '--bypass', if the |
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
228 commit message is explicitly specified, regardless of '--edit') |
14611 | 229 |
22947
c63a09b6b337
tests: use $PYTHON instead of hardcoding python
Augie Fackler <raf@durin42.com>
parents:
22278
diff
changeset
|
230 $ $PYTHON -c 'file("a", "wb").write("a\r\n")' |
14611 | 231 $ hg ci -m makeacrlf |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
232 $ HGEDITOR=cat hg import -m 'should fail because of eol' --edit --bypass ../test.diff |
14611 | 233 applying ../test.diff |
234 patching file a | |
235 Hunk #1 FAILED at 0 | |
236 abort: patch failed to apply | |
237 [255] | |
238 $ hg --config patch.eol=auto import -d '0 0' -m 'test patch.eol' --bypass ../test.diff | |
239 applying ../test.diff | |
240 $ shortlog | |
16124
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
241 o 3:c606edafba99 test 0 0 - default - test patch.eol |
14611 | 242 | |
243 @ 2:872023de769d test 0 0 - default - makeacrlf | |
244 | | |
245 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
246 |/ | |
247 o 0:07f494440405 test 0 0 - default - adda | |
248 | |
249 | |
250 Test applying multiple patches | |
251 | |
252 $ hg up -qC 0 | |
253 $ echo e > e | |
254 $ hg ci -Am adde | |
255 adding e | |
256 created new head | |
257 $ hg export . > ../patch1.diff | |
258 $ hg up -qC 1 | |
259 $ echo f > f | |
260 $ hg ci -Am addf | |
261 adding f | |
262 $ hg export . > ../patch2.diff | |
263 $ cd .. | |
264 $ hg clone -r1 repo-options repo-multi1 | |
265 adding changesets | |
266 adding manifests | |
267 adding file changes | |
268 added 2 changesets with 2 changes to 1 files | |
269 updating to branch foo | |
270 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
271 $ cd repo-multi1 | |
272 $ hg up 0 | |
273 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
274 $ hg import --bypass ../patch1.diff ../patch2.diff | |
275 applying ../patch1.diff | |
276 applying ../patch2.diff | |
277 $ shortlog | |
278 o 3:bc8ca3f8a7c4 test 0 0 - default - addf | |
279 | | |
280 o 2:16581080145e test 0 0 - default - adde | |
281 | | |
282 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
283 |/ | |
284 @ 0:07f494440405 test 0 0 - default - adda | |
285 | |
286 | |
287 Test applying multiple patches with --exact | |
288 | |
289 $ cd .. | |
290 $ hg clone -r1 repo-options repo-multi2 | |
291 adding changesets | |
292 adding manifests | |
293 adding file changes | |
294 added 2 changesets with 2 changes to 1 files | |
295 updating to branch foo | |
296 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
297 $ cd repo-multi2 | |
298 $ hg import --bypass --exact ../patch1.diff ../patch2.diff | |
299 applying ../patch1.diff | |
300 applying ../patch2.diff | |
301 $ shortlog | |
302 o 3:d60cb8989666 test 0 0 - foo - addf | |
303 | | |
304 | o 2:16581080145e test 0 0 - default - adde | |
305 | | | |
306 @ | 1:4e322f7ce8e3 test 0 0 - foo - changea | |
307 |/ | |
308 o 0:07f494440405 test 0 0 - default - adda | |
309 | |
310 | |
311 $ cd .. | |
312 | |
22278
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
313 Test avoiding editor invocation at applying the patch with --exact |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
314 even if commit message is empty |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
315 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
316 $ cd repo-options |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
317 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
318 $ echo a >> a |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
319 $ hg commit -m ' ' |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
320 $ hg tip -T "{node}\n" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
321 1b77bc7d1db9f0e7f1716d515b630516ab386c89 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
322 $ hg export -o ../empty-log.diff . |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
323 $ hg update -q -C ".^1" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
324 $ hg --config extensions.strip= strip -q tip |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
325 $ HGEDITOR=cat hg import --exact --bypass ../empty-log.diff |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
326 applying ../empty-log.diff |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
327 $ hg tip -T "{node}\n" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
328 1b77bc7d1db9f0e7f1716d515b630516ab386c89 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
329 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
330 $ cd .. |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
331 |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
332 #if symlink execbit |
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
333 |
14611 | 334 Test complicated patch with --exact |
335 | |
336 $ hg init repo-exact | |
337 $ cd repo-exact | |
338 $ echo a > a | |
339 $ echo c > c | |
340 $ echo d > d | |
341 $ echo e > e | |
342 $ echo f > f | |
343 $ chmod +x f | |
344 $ ln -s c linkc | |
345 $ hg ci -Am t | |
346 adding a | |
347 adding c | |
348 adding d | |
349 adding e | |
350 adding f | |
351 adding linkc | |
352 $ hg cp a aa1 | |
353 $ echo b >> a | |
354 $ echo b > b | |
355 $ hg add b | |
356 $ hg cp a aa2 | |
357 $ echo aa >> aa2 | |
358 $ chmod +x e | |
359 $ chmod -x f | |
360 $ ln -s a linka | |
361 $ hg rm d | |
362 $ hg rm linkc | |
363 $ hg mv c cc | |
364 $ hg ci -m patch | |
365 $ hg export --git . > ../test.diff | |
366 $ hg up -C null | |
367 0 files updated, 0 files merged, 7 files removed, 0 files unresolved | |
368 $ hg purge | |
369 $ hg st | |
370 $ hg import --bypass --exact ../test.diff | |
371 applying ../test.diff | |
372 | |
373 The patch should have matched the exported revision and generated no additional | |
374 data. If not, diff both heads to debug it. | |
375 | |
376 $ shortlog | |
377 o 1:2978fd5c8aa4 test 0 0 - default - patch | |
378 | | |
379 o 0:a0e19e636a43 test 0 0 - default - t | |
380 | |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
381 #endif |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
382 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
383 $ cd .. |