##// END OF EJS Templates
py3: replace file() with open() in test-import-bypass.t...
Pulkit Goyal -
r36044:d667302b default
parent child Browse files
Show More
@@ -1,385 +1,385 b''
1 1 $ echo "[extensions]" >> $HGRCPATH
2 2 $ echo "purge=" >> $HGRCPATH
3 3
4 4 $ shortlog() {
5 5 > hg log -G --template '{rev}:{node|short} {author} {date|hgdate} - {branch} - {desc|firstline}\n'
6 6 > }
7 7
8 8 Test --bypass with other options
9 9
10 10 $ hg init repo-options
11 11 $ cd repo-options
12 12 $ echo a > a
13 13 $ hg ci -Am adda
14 14 adding a
15 15 $ echo a >> a
16 16 $ hg branch foo
17 17 marked working directory as branch foo
18 18 (branches are permanent and global, did you want a bookmark?)
19 19 $ hg ci -Am changea
20 20 $ hg export . > ../test.diff
21 21 $ hg up null
22 22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
23 23
24 24 Test importing an existing revision
25 25 (this also tests that "hg import" disallows combination of '--exact'
26 26 and '--edit')
27 27
28 28 $ hg import --bypass --exact --edit ../test.diff
29 29 abort: cannot use --exact with --edit
30 30 [255]
31 31 $ hg import --bypass --exact ../test.diff
32 32 applying ../test.diff
33 33 $ shortlog
34 34 o 1:4e322f7ce8e3 test 0 0 - foo - changea
35 35 |
36 36 o 0:07f494440405 test 0 0 - default - adda
37 37
38 38
39 39 Test failure without --exact
40 40
41 41 $ hg import --bypass ../test.diff
42 42 applying ../test.diff
43 43 unable to find 'a' for patching
44 44 (use '--prefix' to apply patch relative to the current directory)
45 45 abort: patch failed to apply
46 46 [255]
47 47 $ hg st
48 48 $ shortlog
49 49 o 1:4e322f7ce8e3 test 0 0 - foo - changea
50 50 |
51 51 o 0:07f494440405 test 0 0 - default - adda
52 52
53 53
54 54 Test --user, --date and --message
55 55
56 56 $ hg up 0
57 57 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
58 58 $ hg import --bypass --u test2 -d '1 0' -m patch2 ../test.diff
59 59 applying ../test.diff
60 60 $ cat .hg/last-message.txt
61 61 patch2 (no-eol)
62 62 $ shortlog
63 63 o 2:2e127d1da504 test2 1 0 - default - patch2
64 64 |
65 65 | o 1:4e322f7ce8e3 test 0 0 - foo - changea
66 66 |/
67 67 @ 0:07f494440405 test 0 0 - default - adda
68 68
69 69 $ hg rollback
70 70 repository tip rolled back to revision 1 (undo import)
71 71
72 72 Test --import-branch
73 73 (this also tests that editor is not invoked for '--bypass', if the
74 74 patch contains the commit message, regardless of '--edit')
75 75
76 76 $ HGEDITOR=cat hg import --bypass --import-branch --edit ../test.diff
77 77 applying ../test.diff
78 78 $ shortlog
79 79 o 1:4e322f7ce8e3 test 0 0 - foo - changea
80 80 |
81 81 @ 0:07f494440405 test 0 0 - default - adda
82 82
83 83 $ hg rollback
84 84 repository tip rolled back to revision 1 (undo import)
85 85
86 86 Test --strip
87 87
88 88 $ hg import --bypass --strip 0 - <<EOF
89 89 > # HG changeset patch
90 90 > # User test
91 91 > # Date 0 0
92 92 > # Branch foo
93 93 > # Node ID 4e322f7ce8e3e4203950eac9ece27bf7e45ffa6c
94 94 > # Parent 07f4944404050f47db2e5c5071e0e84e7a27bba9
95 95 > changea
96 96 >
97 97 > diff -r 07f494440405 -r 4e322f7ce8e3 a
98 98 > --- a Thu Jan 01 00:00:00 1970 +0000
99 99 > +++ a Thu Jan 01 00:00:00 1970 +0000
100 100 > @@ -1,1 +1,2 @@
101 101 > a
102 102 > +a
103 103 > EOF
104 104 applying patch from stdin
105 105 $ hg rollback
106 106 repository tip rolled back to revision 1 (undo import)
107 107
108 108 Test --strip with --bypass
109 109
110 110 $ mkdir -p dir/dir2
111 111 $ echo bb > dir/dir2/b
112 112 $ echo cc > dir/dir2/c
113 113 $ echo d > dir/d
114 114 $ hg ci -Am 'addabcd'
115 115 adding dir/d
116 116 adding dir/dir2/b
117 117 adding dir/dir2/c
118 118 $ shortlog
119 119 @ 2:d805bc8236b6 test 0 0 - default - addabcd
120 120 |
121 121 | o 1:4e322f7ce8e3 test 0 0 - foo - changea
122 122 |/
123 123 o 0:07f494440405 test 0 0 - default - adda
124 124
125 125 $ hg import --bypass --strip 2 --prefix dir/ - <<EOF
126 126 > # HG changeset patch
127 127 > # User test
128 128 > # Date 0 0
129 129 > # Branch foo
130 130 > changeabcd
131 131 >
132 132 > diff --git a/foo/a b/foo/a
133 133 > new file mode 100644
134 134 > --- /dev/null
135 135 > +++ b/foo/a
136 136 > @@ -0,0 +1 @@
137 137 > +a
138 138 > diff --git a/foo/dir2/b b/foo/dir2/b2
139 139 > rename from foo/dir2/b
140 140 > rename to foo/dir2/b2
141 141 > diff --git a/foo/dir2/c b/foo/dir2/c
142 142 > --- a/foo/dir2/c
143 143 > +++ b/foo/dir2/c
144 144 > @@ -0,0 +1 @@
145 145 > +cc
146 146 > diff --git a/foo/d b/foo/d
147 147 > deleted file mode 100644
148 148 > --- a/foo/d
149 149 > +++ /dev/null
150 150 > @@ -1,1 +0,0 @@
151 151 > -d
152 152 > EOF
153 153 applying patch from stdin
154 154
155 155 $ shortlog
156 156 o 3:5bd46886ca3e test 0 0 - default - changeabcd
157 157 |
158 158 @ 2:d805bc8236b6 test 0 0 - default - addabcd
159 159 |
160 160 | o 1:4e322f7ce8e3 test 0 0 - foo - changea
161 161 |/
162 162 o 0:07f494440405 test 0 0 - default - adda
163 163
164 164 $ hg diff --change 3 --git
165 165 diff --git a/dir/a b/dir/a
166 166 new file mode 100644
167 167 --- /dev/null
168 168 +++ b/dir/a
169 169 @@ -0,0 +1,1 @@
170 170 +a
171 171 diff --git a/dir/d b/dir/d
172 172 deleted file mode 100644
173 173 --- a/dir/d
174 174 +++ /dev/null
175 175 @@ -1,1 +0,0 @@
176 176 -d
177 177 diff --git a/dir/dir2/b b/dir/dir2/b2
178 178 rename from dir/dir2/b
179 179 rename to dir/dir2/b2
180 180 diff --git a/dir/dir2/c b/dir/dir2/c
181 181 --- a/dir/dir2/c
182 182 +++ b/dir/dir2/c
183 183 @@ -1,1 +1,2 @@
184 184 cc
185 185 +cc
186 186 $ hg -q --config extensions.strip= strip .
187 187
188 188 Test unsupported combinations
189 189
190 190 $ hg import --bypass --no-commit ../test.diff
191 191 abort: cannot use --no-commit with --bypass
192 192 [255]
193 193 $ hg import --bypass --similarity 50 ../test.diff
194 194 abort: cannot use --similarity with --bypass
195 195 [255]
196 196 $ hg import --exact --prefix dir/ ../test.diff
197 197 abort: cannot use --exact with --prefix
198 198 [255]
199 199
200 200 Test commit editor
201 201 (this also tests that editor is invoked, if the patch doesn't contain
202 202 the commit message, regardless of '--edit')
203 203
204 204 $ cat > ../test.diff <<EOF
205 205 > diff -r 07f494440405 -r 4e322f7ce8e3 a
206 206 > --- a/a Thu Jan 01 00:00:00 1970 +0000
207 207 > +++ b/a Thu Jan 01 00:00:00 1970 +0000
208 208 > @@ -1,1 +1,2 @@
209 209 > -a
210 210 > +b
211 211 > +c
212 212 > EOF
213 213 $ HGEDITOR=cat hg import --bypass ../test.diff
214 214 applying ../test.diff
215 215
216 216
217 217 HG: Enter commit message. Lines beginning with 'HG:' are removed.
218 218 HG: Leave message empty to abort commit.
219 219 HG: --
220 220 HG: user: test
221 221 HG: branch 'default'
222 222 HG: changed a
223 223 abort: empty commit message
224 224 [255]
225 225
226 226 Test patch.eol is handled
227 227 (this also tests that editor is not invoked for '--bypass', if the
228 228 commit message is explicitly specified, regardless of '--edit')
229 229
230 $ $PYTHON -c 'file("a", "wb").write("a\r\n")'
230 $ $PYTHON -c 'open("a", "wb").write(b"a\r\n")'
231 231 $ hg ci -m makeacrlf
232 232 $ HGEDITOR=cat hg import -m 'should fail because of eol' --edit --bypass ../test.diff
233 233 applying ../test.diff
234 234 patching file a
235 235 Hunk #1 FAILED at 0
236 236 abort: patch failed to apply
237 237 [255]
238 238 $ hg --config patch.eol=auto import -d '0 0' -m 'test patch.eol' --bypass ../test.diff
239 239 applying ../test.diff
240 240 $ shortlog
241 241 o 3:c606edafba99 test 0 0 - default - test patch.eol
242 242 |
243 243 @ 2:872023de769d test 0 0 - default - makeacrlf
244 244 |
245 245 | o 1:4e322f7ce8e3 test 0 0 - foo - changea
246 246 |/
247 247 o 0:07f494440405 test 0 0 - default - adda
248 248
249 249
250 250 Test applying multiple patches
251 251
252 252 $ hg up -qC 0
253 253 $ echo e > e
254 254 $ hg ci -Am adde
255 255 adding e
256 256 created new head
257 257 $ hg export . > ../patch1.diff
258 258 $ hg up -qC 1
259 259 $ echo f > f
260 260 $ hg ci -Am addf
261 261 adding f
262 262 $ hg export . > ../patch2.diff
263 263 $ cd ..
264 264 $ hg clone -r1 repo-options repo-multi1
265 265 adding changesets
266 266 adding manifests
267 267 adding file changes
268 268 added 2 changesets with 2 changes to 1 files
269 269 new changesets 07f494440405:4e322f7ce8e3
270 270 updating to branch foo
271 271 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
272 272 $ cd repo-multi1
273 273 $ hg up 0
274 274 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
275 275 $ hg import --bypass ../patch1.diff ../patch2.diff
276 276 applying ../patch1.diff
277 277 applying ../patch2.diff
278 278 $ shortlog
279 279 o 3:bc8ca3f8a7c4 test 0 0 - default - addf
280 280 |
281 281 o 2:16581080145e test 0 0 - default - adde
282 282 |
283 283 | o 1:4e322f7ce8e3 test 0 0 - foo - changea
284 284 |/
285 285 @ 0:07f494440405 test 0 0 - default - adda
286 286
287 287
288 288 Test applying multiple patches with --exact
289 289
290 290 $ cd ..
291 291 $ hg clone -r1 repo-options repo-multi2
292 292 adding changesets
293 293 adding manifests
294 294 adding file changes
295 295 added 2 changesets with 2 changes to 1 files
296 296 new changesets 07f494440405:4e322f7ce8e3
297 297 updating to branch foo
298 298 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
299 299 $ cd repo-multi2
300 300 $ hg import --bypass --exact ../patch1.diff ../patch2.diff
301 301 applying ../patch1.diff
302 302 applying ../patch2.diff
303 303 $ shortlog
304 304 o 3:d60cb8989666 test 0 0 - foo - addf
305 305 |
306 306 | o 2:16581080145e test 0 0 - default - adde
307 307 | |
308 308 @ | 1:4e322f7ce8e3 test 0 0 - foo - changea
309 309 |/
310 310 o 0:07f494440405 test 0 0 - default - adda
311 311
312 312
313 313 $ cd ..
314 314
315 315 Test avoiding editor invocation at applying the patch with --exact
316 316 even if commit message is empty
317 317
318 318 $ cd repo-options
319 319
320 320 $ echo a >> a
321 321 $ hg commit -m ' '
322 322 $ hg tip -T "{node}\n"
323 323 1b77bc7d1db9f0e7f1716d515b630516ab386c89
324 324 $ hg export -o ../empty-log.diff .
325 325 $ hg update -q -C ".^1"
326 326 $ hg --config extensions.strip= strip -q tip
327 327 $ HGEDITOR=cat hg import --exact --bypass ../empty-log.diff
328 328 applying ../empty-log.diff
329 329 $ hg tip -T "{node}\n"
330 330 1b77bc7d1db9f0e7f1716d515b630516ab386c89
331 331
332 332 $ cd ..
333 333
334 334 #if symlink execbit
335 335
336 336 Test complicated patch with --exact
337 337
338 338 $ hg init repo-exact
339 339 $ cd repo-exact
340 340 $ echo a > a
341 341 $ echo c > c
342 342 $ echo d > d
343 343 $ echo e > e
344 344 $ echo f > f
345 345 $ chmod +x f
346 346 $ ln -s c linkc
347 347 $ hg ci -Am t
348 348 adding a
349 349 adding c
350 350 adding d
351 351 adding e
352 352 adding f
353 353 adding linkc
354 354 $ hg cp a aa1
355 355 $ echo b >> a
356 356 $ echo b > b
357 357 $ hg add b
358 358 $ hg cp a aa2
359 359 $ echo aa >> aa2
360 360 $ chmod +x e
361 361 $ chmod -x f
362 362 $ ln -s a linka
363 363 $ hg rm d
364 364 $ hg rm linkc
365 365 $ hg mv c cc
366 366 $ hg ci -m patch
367 367 $ hg export --git . > ../test.diff
368 368 $ hg up -C null
369 369 0 files updated, 0 files merged, 7 files removed, 0 files unresolved
370 370 $ hg purge
371 371 $ hg st
372 372 $ hg import --bypass --exact ../test.diff
373 373 applying ../test.diff
374 374
375 375 The patch should have matched the exported revision and generated no additional
376 376 data. If not, diff both heads to debug it.
377 377
378 378 $ shortlog
379 379 o 1:2978fd5c8aa4 test 0 0 - default - patch
380 380 |
381 381 o 0:a0e19e636a43 test 0 0 - default - t
382 382
383 383 #endif
384 384
385 385 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now