##// END OF EJS Templates
tests: fix reported patch tool name in test-mq...
Mads Kiilerich -
r7042:0ada66dc default
parent child Browse files
Show More
@@ -1,531 +1,531 b''
1 1 #!/bin/sh
2 2
3 3 checkundo()
4 4 {
5 5 if [ -f .hg/store/undo ]; then
6 6 echo ".hg/store/undo still exists after $1"
7 7 fi
8 8 }
9 9
10 10 echo "[extensions]" >> $HGRCPATH
11 11 echo "mq=" >> $HGRCPATH
12 12
13 13 echo % help
14 14 hg help mq
15 15
16 16 hg init a
17 17 cd a
18 18 echo a > a
19 19 hg ci -Ama
20 20
21 21 hg clone . ../k
22 22
23 23 mkdir b
24 24 echo z > b/z
25 25 hg ci -Ama
26 26
27 27 echo % qinit
28 28
29 29 hg qinit
30 30
31 31 cd ..
32 32 hg init b
33 33
34 34 echo % -R qinit
35 35
36 36 hg -R b qinit
37 37
38 38 hg init c
39 39
40 40 echo % qinit -c
41 41
42 42 hg --cwd c qinit -c
43 43 hg -R c/.hg/patches st
44 44
45 45 echo % qnew should refuse bad patch names
46 46 hg -R c qnew series
47 47 hg -R c qnew status
48 48 hg -R c qnew guards
49 49 hg -R c qnew .hgignore
50 50
51 51 echo % qnew implies add
52 52
53 53 hg -R c qnew test.patch
54 54 hg -R c/.hg/patches st
55 55
56 56 echo '% qinit; qinit -c'
57 57 hg init d
58 58 cd d
59 59 hg qinit
60 60 hg qinit -c
61 61 # qinit -c should create both files if they don't exist
62 62 echo ' .hgignore:'
63 63 cat .hg/patches/.hgignore
64 64 echo ' series:'
65 65 cat .hg/patches/series
66 66 hg qinit -c 2>&1 | sed -e 's/repository.*already/repository already/'
67 67 cd ..
68 68
69 69 echo '% qinit; <stuff>; qinit -c'
70 70 hg init e
71 71 cd e
72 72 hg qnew A
73 73 checkundo qnew
74 74 echo foo > foo
75 75 hg add foo
76 76 hg qrefresh
77 77 hg qnew B
78 78 echo >> foo
79 79 hg qrefresh
80 80 echo status >> .hg/patches/.hgignore
81 81 echo bleh >> .hg/patches/.hgignore
82 82 hg qinit -c
83 83 hg -R .hg/patches status
84 84 # qinit -c shouldn't touch these files if they already exist
85 85 echo ' .hgignore:'
86 86 cat .hg/patches/.hgignore
87 87 echo ' series:'
88 88 cat .hg/patches/series
89 89 cd ..
90 90
91 91 cd a
92 92
93 93 echo a > somefile
94 94 hg add somefile
95 95
96 96 echo % qnew with uncommitted changes
97 97
98 98 hg qnew uncommitted.patch
99 99 hg st
100 100 hg qseries
101 101
102 102 echo '% qnew with uncommitted changes and missing file (issue 803)'
103 103
104 104 hg qnew issue803.patch someotherfile 2>&1 | \
105 105 sed -e 's/someotherfile:.*/someotherfile: No such file or directory/'
106 106 hg st
107 107 hg qseries
108 108 hg qpop -f
109 109 hg qdel issue803.patch
110 110
111 111 hg revert --no-backup somefile
112 112 rm somefile
113 113
114 114 echo % qnew -m
115 115
116 116 hg qnew -m 'foo bar' test.patch
117 117 cat .hg/patches/test.patch
118 118
119 119 echo % qrefresh
120 120
121 121 echo a >> a
122 122 hg qrefresh
123 123 sed -e "s/^\(diff -r \)\([a-f0-9]* \)/\1 x/" \
124 124 -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
125 125 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/test.patch
126 126
127 127 echo % empty qrefresh
128 128
129 129 hg qrefresh -X a
130 130 echo 'revision:'
131 131 hg diff -r -2 -r -1
132 132 echo 'patch:'
133 133 cat .hg/patches/test.patch
134 134 echo 'working dir diff:'
135 135 hg diff --nodates -q
136 136 # restore things
137 137 hg qrefresh
138 138 checkundo qrefresh
139 139
140 140 echo % qpop
141 141
142 142 hg qpop
143 143 checkundo qpop
144 144
145 145 echo % qpush
146 146
147 147 hg qpush
148 148 checkundo qpush
149 149
150 150 cd ..
151 151
152 152 echo % pop/push outside repo
153 153
154 154 hg -R a qpop
155 155 hg -R a qpush
156 156
157 157 cd a
158 158 hg qnew test2.patch
159 159
160 160 echo % qrefresh in subdir
161 161
162 162 cd b
163 163 echo a > a
164 164 hg add a
165 165 hg qrefresh
166 166
167 167 echo % pop/push -a in subdir
168 168
169 169 hg qpop -a
170 170 hg --traceback qpush -a
171 171
172 172 echo % qseries
173 173 hg qseries
174 174 hg qpop
175 175 hg qseries -vs
176 176 hg qpush
177 177
178 178 echo % qapplied
179 179 hg qapplied
180 180
181 181 echo % qtop
182 182 hg qtop
183 183
184 184 echo % qprev
185 185 hg qprev
186 186
187 187 echo % qnext
188 188 hg qnext
189 189
190 190 echo % pop, qnext, qprev, qapplied
191 191 hg qpop
192 192 hg qnext
193 193 hg qprev
194 194 hg qapplied
195 195
196 196 echo % commit should fail
197 197 hg commit
198 198
199 199 echo % push should fail
200 200 hg push ../../k
201 201
202 202 echo % qunapplied
203 203 hg qunapplied
204 204
205 205 echo % qpush/qpop with index
206 206 hg qnew test1b.patch
207 207 echo 1b > 1b
208 208 hg add 1b
209 209 hg qrefresh
210 210 hg qpush 2
211 211 hg qpop 0
212 212 hg qpush test.patch+1
213 213 hg qpush test.patch+2
214 214 hg qpop test2.patch-1
215 215 hg qpop test2.patch-2
216 216 hg qpush test1b.patch+1
217 217
218 218 echo % push should succeed
219 219 hg qpop -a
220 220 hg push ../../k
221 221
222 222 echo % qpush/qpop error codes
223 223 errorcode()
224 224 {
225 225 hg "$@" && echo " $@ succeeds" || echo " $@ fails"
226 226 }
227 227
228 228 # we want to start with some patches applied
229 229 hg qpush -a
230 230 echo " % pops all patches and succeeds"
231 231 errorcode qpop -a
232 232 echo " % does nothing and succeeds"
233 233 errorcode qpop -a
234 234 echo " % fails - nothing else to pop"
235 235 errorcode qpop
236 236 echo " % pushes a patch and succeeds"
237 237 errorcode qpush
238 238 echo " % pops a patch and succeeds"
239 239 errorcode qpop
240 240 echo " % pushes up to test1b.patch and succeeds"
241 241 errorcode qpush test1b.patch
242 242 echo " % does nothing and succeeds"
243 243 errorcode qpush test1b.patch
244 244 echo " % does nothing and succeeds"
245 245 errorcode qpop test1b.patch
246 246 echo " % fails - can't push to this patch"
247 247 errorcode qpush test.patch
248 248 echo " % fails - can't pop to this patch"
249 249 errorcode qpop test2.patch
250 250 echo " % pops up to test.patch and succeeds"
251 251 errorcode qpop test.patch
252 252 echo " % pushes all patches and succeeds"
253 253 errorcode qpush -a
254 254 echo " % does nothing and succeeds"
255 255 errorcode qpush -a
256 256 echo " % fails - nothing else to push"
257 257 errorcode qpush
258 258 echo " % does nothing and succeeds"
259 259 errorcode qpush test2.patch
260 260
261 261
262 262 echo % strip
263 263 cd ../../b
264 264 echo x>x
265 265 hg ci -Ama
266 266 hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/'
267 267 hg unbundle .hg/strip-backup/*
268 268
269 269 echo '% cd b; hg qrefresh'
270 270 hg init refresh
271 271 cd refresh
272 272 echo a > a
273 273 hg ci -Ama -d'0 0'
274 274 hg qnew -mfoo foo
275 275 echo a >> a
276 276 hg qrefresh
277 277 mkdir b
278 278 cd b
279 279 echo f > f
280 280 hg add f
281 281 hg qrefresh
282 282 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
283 283 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
284 284 echo % hg qrefresh .
285 285 hg qrefresh .
286 286 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
287 287 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
288 288 hg status
289 289
290 290 echo % qpush failure
291 291 cd ..
292 292 hg qrefresh
293 293 hg qnew -mbar bar
294 294 echo foo > foo
295 295 echo bar > bar
296 296 hg add foo bar
297 297 hg qrefresh
298 298 hg qpop -a
299 299 echo bar > foo
300 300 hg qpush -a
301 301 hg st
302 302
303 303 echo % mq tags
304 304 hg log --template '{rev} {tags}\n' -r qparent:qtip
305 305
306 306 echo % bad node in status
307 307 hg qpop
308 308 hg strip -qn tip
309 309 hg tip 2>&1 | sed -e 's/unknown node .*/unknown node/'
310 310 hg branches 2>&1 | sed -e 's/unknown node .*/unknown node/'
311 311 hg qpop
312 312
313 313 cat >>$HGRCPATH <<EOF
314 314 [diff]
315 315 git = True
316 316 EOF
317 317 cd ..
318 318 hg init git
319 319 cd git
320 320 hg qinit
321 321
322 322 hg qnew -m'new file' new
323 323 echo foo > new
324 324 chmod +x new
325 325 hg add new
326 326 hg qrefresh
327 327 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
328 328 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/new
329 329
330 330 hg qnew -m'copy file' copy
331 331 hg cp new copy
332 332 hg qrefresh
333 333 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
334 334 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/copy
335 335
336 336 hg qpop
337 337 hg qpush
338 338 hg qdiff
339 339 cat >>$HGRCPATH <<EOF
340 340 [diff]
341 341 git = False
342 342 EOF
343 343 hg qdiff --git
344 344
345 345 cd ..
346 346 hg init slow
347 347 cd slow
348 348 hg qinit
349 349 echo foo > foo
350 350 hg add foo
351 351 hg ci -m 'add foo'
352 352 hg qnew bar
353 353 echo bar > bar
354 354 hg add bar
355 355 hg mv foo baz
356 356 hg qrefresh --git
357 357 hg up -C 0
358 358 echo >> foo
359 359 hg ci -m 'change foo'
360 360 hg up -C 1
361 361 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
362 362 cat .hg/patches/bar
363 363 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
364 364 hg qrefresh --git
365 365 cat .hg/patches/bar
366 366 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
367 367 hg qrefresh
368 368 grep 'diff --git' .hg/patches/bar
369 369
370 370 echo
371 371 hg up -C 1
372 372 echo >> foo
373 373 hg ci -m 'change foo again'
374 374 hg up -C 2
375 375 hg mv bar quux
376 376 hg mv baz bleh
377 377 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
378 378 cat .hg/patches/bar
379 379 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
380 380 hg mv quux fred
381 381 hg mv bleh barney
382 382 hg qrefresh --git
383 383 cat .hg/patches/bar
384 384 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
385 385
386 386 echo % refresh omitting an added file
387 387 hg qnew baz
388 388 echo newfile > newfile
389 389 hg add newfile
390 390 hg qrefresh
391 391 hg st -A newfile
392 392 hg qrefresh -X newfile
393 393 hg st -A newfile
394 394 hg revert newfile
395 395 rm newfile
396 396 hg qpop
397 397 hg qdel baz
398 398
399 399 echo % create a git patch
400 400 echo a > alexander
401 401 hg add alexander
402 402 hg qnew -f --git addalexander
403 403 grep diff .hg/patches/addalexander
404 404
405 405 echo % create a git binary patch
406 406 cat > writebin.py <<EOF
407 407 import sys
408 408 path = sys.argv[1]
409 409 open(path, 'wb').write('BIN\x00ARY')
410 410 EOF
411 411 python writebin.py bucephalus
412 412
413 413 python "$TESTDIR/md5sum.py" bucephalus
414 414 hg add bucephalus
415 415 hg qnew -f --git addbucephalus
416 416 grep diff .hg/patches/addbucephalus
417 417
418 418 echo % check binary patches can be popped and pushed
419 419 hg qpop
420 420 test -f bucephalus && echo % bucephalus should not be there
421 421 hg qpush
422 422 test -f bucephalus || echo % bucephalus should be there
423 423 python "$TESTDIR/md5sum.py" bucephalus
424 424
425 425
426 426 echo '% strip again'
427 427 cd ..
428 428 hg init strip
429 429 cd strip
430 430 touch foo
431 431 hg add foo
432 432 hg ci -m 'add foo' -d '0 0'
433 433 echo >> foo
434 434 hg ci -m 'change foo 1' -d '0 0'
435 435 hg up -C 0
436 436 echo 1 >> foo
437 437 hg ci -m 'change foo 2' -d '0 0'
438 438 HGMERGE=true hg merge
439 439 hg ci -m merge -d '0 0'
440 440 hg log
441 441 hg strip 1 2>&1 | sed 's/\(saving bundle to \).*/\1/'
442 442 checkundo strip
443 443 hg log
444 444 cd ..
445 445
446 446 echo '% qclone'
447 447 qlog()
448 448 {
449 449 echo 'main repo:'
450 450 hg log --template ' rev {rev}: {desc}\n'
451 451 echo 'patch repo:'
452 452 hg -R .hg/patches log --template ' rev {rev}: {desc}\n'
453 453 }
454 454 hg init qclonesource
455 455 cd qclonesource
456 456 echo foo > foo
457 457 hg add foo
458 458 hg ci -m 'add foo'
459 459 hg qinit
460 460 hg qnew patch1
461 461 echo bar >> foo
462 462 hg qrefresh -m 'change foo'
463 463 cd ..
464 464
465 465 # repo with unversioned patch dir
466 466 hg qclone qclonesource failure
467 467
468 468 cd qclonesource
469 469 hg qinit -c
470 470 hg qci -m checkpoint
471 471 qlog
472 472 cd ..
473 473
474 474 # repo with patches applied
475 475 hg qclone qclonesource qclonedest
476 476 cd qclonedest
477 477 qlog
478 478 cd ..
479 479
480 480 # repo with patches unapplied
481 481 cd qclonesource
482 482 hg qpop -a
483 483 qlog
484 484 cd ..
485 485 hg qclone qclonesource qclonedest2
486 486 cd qclonedest2
487 487 qlog
488 488 cd ..
489 489
490 490 echo % 'test applying on an empty file (issue 1033)'
491 491 hg init empty
492 492 cd empty
493 493 touch a
494 494 hg ci -Am addempty
495 495 echo a > a
496 496 hg qnew -f -e changea
497 497 hg qpop
498 498 hg qpush
499 499 cd ..
500 500
501 501 echo % test qpush with --force, issue1087
502 502 hg init forcepush
503 503 cd forcepush
504 504 echo hello > hello.txt
505 505 echo bye > bye.txt
506 506 hg ci -Ama
507 507 hg qnew -d '0 0' empty
508 508 hg qpop
509 509 echo world >> hello.txt
510 510
511 511 echo % qpush should fail, local changes
512 512 hg qpush
513 513
514 514 echo % apply force, should not discard changes with empty patch
515 hg qpush -f
515 hg qpush -f 2>&1 | sed 's,^.*/patch,patch,g'
516 516 hg diff --config diff.nodates=True
517 517 hg qdiff --config diff.nodates=True
518 518 hg log -l1 -p
519 519 hg qref -d '0 0'
520 520 hg qpop
521 521 echo universe >> hello.txt
522 522 echo universe >> bye.txt
523 523
524 524 echo % qpush should fail, local changes
525 525 hg qpush
526 526
527 527 echo % apply force, should discard changes in hello, but not bye
528 528 hg qpush -f
529 529 hg st
530 530 hg diff --config diff.nodates=True
531 531 hg qdiff --config diff.nodates=True
@@ -1,546 +1,546 b''
1 1 % help
2 2 mq extension - patch management and development
3 3
4 4 This extension lets you work with a stack of patches in a Mercurial
5 5 repository. It manages two stacks of patches - all known patches, and
6 6 applied patches (subset of known patches).
7 7
8 8 Known patches are represented as patch files in the .hg/patches
9 9 directory. Applied patches are both patch files and changesets.
10 10
11 11 Common tasks (use "hg help command" for more details):
12 12
13 13 prepare repository to work with patches qinit
14 14 create new patch qnew
15 15 import existing patch qimport
16 16
17 17 print patch series qseries
18 18 print applied patches qapplied
19 19 print name of top applied patch qtop
20 20
21 21 add known patch to applied stack qpush
22 22 remove patch from applied stack qpop
23 23 refresh contents of top applied patch qrefresh
24 24
25 25 list of commands:
26 26
27 27 qapplied print the patches already applied
28 28 qclone clone main and patch repository at same time
29 29 qcommit commit changes in the queue repository
30 30 qdelete remove patches from queue
31 31 qdiff diff of the current patch and subsequent modifications
32 32 qfold fold the named patches into the current patch
33 33 qgoto push or pop patches until named patch is at top of stack
34 34 qguard set or print guards for a patch
35 35 qheader Print the header of the topmost or specified patch
36 36 qimport import a patch
37 37 qinit init a new queue repository
38 38 qnew create a new patch
39 39 qnext print the name of the next patch
40 40 qpop pop the current patch off the stack
41 41 qprev print the name of the previous patch
42 42 qpush push the next patch onto the stack
43 43 qrefresh update the current patch
44 44 qrename rename a patch
45 45 qrestore restore the queue state saved by a rev
46 46 qsave save current queue state
47 47 qselect set or print guarded patches to push
48 48 qseries print the entire series file
49 49 qtop print the name of the current patch
50 50 qunapplied print the patches not yet applied
51 51 strip strip a revision and all its descendants from the repository
52 52
53 53 use "hg -v help mq" to show aliases and global options
54 54 adding a
55 55 updating working directory
56 56 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
57 57 adding b/z
58 58 % qinit
59 59 % -R qinit
60 60 % qinit -c
61 61 A .hgignore
62 62 A series
63 63 % qnew should refuse bad patch names
64 64 abort: "series" cannot be used as the name of a patch
65 65 abort: "status" cannot be used as the name of a patch
66 66 abort: "guards" cannot be used as the name of a patch
67 67 abort: ".hgignore" cannot be used as the name of a patch
68 68 % qnew implies add
69 69 A .hgignore
70 70 A series
71 71 A test.patch
72 72 % qinit; qinit -c
73 73 .hgignore:
74 74 ^\.hg
75 75 ^\.mq
76 76 syntax: glob
77 77 status
78 78 guards
79 79 series:
80 80 abort: repository already exists!
81 81 % qinit; <stuff>; qinit -c
82 82 adding .hg/patches/A
83 83 adding .hg/patches/B
84 84 A .hgignore
85 85 A A
86 86 A B
87 87 A series
88 88 .hgignore:
89 89 status
90 90 bleh
91 91 series:
92 92 A
93 93 B
94 94 % qnew with uncommitted changes
95 95 abort: local changes found, refresh first
96 96 A somefile
97 97 % qnew with uncommitted changes and missing file (issue 803)
98 98 someotherfile: No such file or directory
99 99 A somefile
100 100 issue803.patch
101 101 Patch queue now empty
102 102 % qnew -m
103 103 foo bar
104 104 % qrefresh
105 105 foo bar
106 106
107 107 diff -r xa
108 108 --- a/a
109 109 +++ b/a
110 110 @@ -1,1 +1,2 @@
111 111 a
112 112 +a
113 113 % empty qrefresh
114 114 revision:
115 115 patch:
116 116 foo bar
117 117
118 118 working dir diff:
119 119 --- a/a
120 120 +++ b/a
121 121 @@ -1,1 +1,2 @@
122 122 a
123 123 +a
124 124 % qpop
125 125 Patch queue now empty
126 126 % qpush
127 127 applying test.patch
128 128 Now at: test.patch
129 129 % pop/push outside repo
130 130 Patch queue now empty
131 131 applying test.patch
132 132 Now at: test.patch
133 133 % qrefresh in subdir
134 134 % pop/push -a in subdir
135 135 Patch queue now empty
136 136 applying test.patch
137 137 applying test2.patch
138 138 Now at: test2.patch
139 139 % qseries
140 140 test.patch
141 141 test2.patch
142 142 Now at: test.patch
143 143 0 A test.patch: foo bar
144 144 1 U test2.patch:
145 145 applying test2.patch
146 146 Now at: test2.patch
147 147 % qapplied
148 148 test.patch
149 149 test2.patch
150 150 % qtop
151 151 test2.patch
152 152 % qprev
153 153 test.patch
154 154 % qnext
155 155 All patches applied
156 156 % pop, qnext, qprev, qapplied
157 157 Now at: test.patch
158 158 test2.patch
159 159 Only one patch applied
160 160 test.patch
161 161 % commit should fail
162 162 abort: cannot commit over an applied mq patch
163 163 % push should fail
164 164 pushing to ../../k
165 165 abort: source has mq patches applied
166 166 % qunapplied
167 167 test2.patch
168 168 % qpush/qpop with index
169 169 applying test2.patch
170 170 Now at: test2.patch
171 171 Now at: test.patch
172 172 applying test1b.patch
173 173 Now at: test1b.patch
174 174 applying test2.patch
175 175 Now at: test2.patch
176 176 Now at: test1b.patch
177 177 Now at: test.patch
178 178 applying test1b.patch
179 179 applying test2.patch
180 180 Now at: test2.patch
181 181 % push should succeed
182 182 Patch queue now empty
183 183 pushing to ../../k
184 184 searching for changes
185 185 adding changesets
186 186 adding manifests
187 187 adding file changes
188 188 added 1 changesets with 1 changes to 1 files
189 189 % qpush/qpop error codes
190 190 applying test.patch
191 191 applying test1b.patch
192 192 applying test2.patch
193 193 Now at: test2.patch
194 194 % pops all patches and succeeds
195 195 Patch queue now empty
196 196 qpop -a succeeds
197 197 % does nothing and succeeds
198 198 no patches applied
199 199 qpop -a succeeds
200 200 % fails - nothing else to pop
201 201 no patches applied
202 202 qpop fails
203 203 % pushes a patch and succeeds
204 204 applying test.patch
205 205 Now at: test.patch
206 206 qpush succeeds
207 207 % pops a patch and succeeds
208 208 Patch queue now empty
209 209 qpop succeeds
210 210 % pushes up to test1b.patch and succeeds
211 211 applying test.patch
212 212 applying test1b.patch
213 213 Now at: test1b.patch
214 214 qpush test1b.patch succeeds
215 215 % does nothing and succeeds
216 216 qpush: test1b.patch is already at the top
217 217 qpush test1b.patch succeeds
218 218 % does nothing and succeeds
219 219 qpop: test1b.patch is already at the top
220 220 qpop test1b.patch succeeds
221 221 % fails - can't push to this patch
222 222 abort: cannot push to a previous patch: test.patch
223 223 qpush test.patch fails
224 224 % fails - can't pop to this patch
225 225 abort: patch test2.patch is not applied
226 226 qpop test2.patch fails
227 227 % pops up to test.patch and succeeds
228 228 Now at: test.patch
229 229 qpop test.patch succeeds
230 230 % pushes all patches and succeeds
231 231 applying test1b.patch
232 232 applying test2.patch
233 233 Now at: test2.patch
234 234 qpush -a succeeds
235 235 % does nothing and succeeds
236 236 all patches are currently applied
237 237 qpush -a succeeds
238 238 % fails - nothing else to push
239 239 patch series already fully applied
240 240 qpush fails
241 241 % does nothing and succeeds
242 242 all patches are currently applied
243 243 qpush test2.patch succeeds
244 244 % strip
245 245 adding x
246 246 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
247 247 saving bundle to
248 248 adding changesets
249 249 adding manifests
250 250 adding file changes
251 251 added 1 changesets with 1 changes to 1 files
252 252 (run 'hg update' to get a working copy)
253 253 % cd b; hg qrefresh
254 254 adding a
255 255 foo
256 256
257 257 diff -r cb9a9f314b8b a
258 258 --- a/a
259 259 +++ b/a
260 260 @@ -1,1 +1,2 @@
261 261 a
262 262 +a
263 263 diff -r cb9a9f314b8b b/f
264 264 --- /dev/null
265 265 +++ b/b/f
266 266 @@ -0,0 +1,1 @@
267 267 +f
268 268 % hg qrefresh .
269 269 foo
270 270
271 271 diff -r cb9a9f314b8b b/f
272 272 --- /dev/null
273 273 +++ b/b/f
274 274 @@ -0,0 +1,1 @@
275 275 +f
276 276 M a
277 277 % qpush failure
278 278 Patch queue now empty
279 279 applying foo
280 280 applying bar
281 281 file foo already exists
282 282 1 out of 1 hunk FAILED -- saving rejects to file foo.rej
283 283 patch failed, unable to continue (try -v)
284 284 patch failed, rejects left in working dir
285 285 Errors during apply, please fix and refresh bar
286 286 ? foo
287 287 ? foo.rej
288 288 % mq tags
289 289 0 qparent
290 290 1 qbase foo
291 291 2 qtip bar tip
292 292 % bad node in status
293 293 Now at: foo
294 294 changeset: 0:cb9a9f314b8b
295 295 mq status file refers to unknown node
296 296 tag: tip
297 297 user: test
298 298 date: Thu Jan 01 00:00:00 1970 +0000
299 299 summary: a
300 300
301 301 mq status file refers to unknown node
302 302 default 0:cb9a9f314b8b
303 303 abort: working directory revision is not qtip
304 304 new file
305 305
306 306 diff --git a/new b/new
307 307 new file mode 100755
308 308 --- /dev/null
309 309 +++ b/new
310 310 @@ -0,0 +1,1 @@
311 311 +foo
312 312 copy file
313 313
314 314 diff --git a/new b/copy
315 315 copy from new
316 316 copy to copy
317 317 Now at: new
318 318 applying copy
319 319 Now at: copy
320 320 diff --git a/new b/copy
321 321 copy from new
322 322 copy to copy
323 323 diff --git a/new b/copy
324 324 copy from new
325 325 copy to copy
326 326 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
327 327 created new head
328 328 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
329 329 adding branch
330 330 adding changesets
331 331 adding manifests
332 332 adding file changes
333 333 added 1 changesets with 1 changes to 1 files
334 334 Patch queue now empty
335 335 (working directory not at tip)
336 336 applying bar
337 337 Now at: bar
338 338 diff --git a/bar b/bar
339 339 new file mode 100644
340 340 --- /dev/null
341 341 +++ b/bar
342 342 @@ -0,0 +1,1 @@
343 343 +bar
344 344 diff --git a/foo b/baz
345 345 rename from foo
346 346 rename to baz
347 347 2 baz (foo)
348 348 diff --git a/bar b/bar
349 349 new file mode 100644
350 350 --- /dev/null
351 351 +++ b/bar
352 352 @@ -0,0 +1,1 @@
353 353 +bar
354 354 diff --git a/foo b/baz
355 355 rename from foo
356 356 rename to baz
357 357 2 baz (foo)
358 358 diff --git a/bar b/bar
359 359 diff --git a/foo b/baz
360 360
361 361 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
362 362 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
363 363 adding branch
364 364 adding changesets
365 365 adding manifests
366 366 adding file changes
367 367 added 1 changesets with 1 changes to 1 files
368 368 Patch queue now empty
369 369 (working directory not at tip)
370 370 applying bar
371 371 Now at: bar
372 372 diff --git a/foo b/bleh
373 373 rename from foo
374 374 rename to bleh
375 375 diff --git a/quux b/quux
376 376 new file mode 100644
377 377 --- /dev/null
378 378 +++ b/quux
379 379 @@ -0,0 +1,1 @@
380 380 +bar
381 381 3 bleh (foo)
382 382 diff --git a/foo b/barney
383 383 rename from foo
384 384 rename to barney
385 385 diff --git a/fred b/fred
386 386 new file mode 100644
387 387 --- /dev/null
388 388 +++ b/fred
389 389 @@ -0,0 +1,1 @@
390 390 +bar
391 391 3 barney (foo)
392 392 % refresh omitting an added file
393 393 C newfile
394 394 A newfile
395 395 Now at: bar
396 396 % create a git patch
397 397 diff --git a/alexander b/alexander
398 398 % create a git binary patch
399 399 8ba2a2f3e77b55d03051ff9c24ad65e7 bucephalus
400 400 diff --git a/bucephalus b/bucephalus
401 401 % check binary patches can be popped and pushed
402 402 Now at: addalexander
403 403 applying addbucephalus
404 404 Now at: addbucephalus
405 405 8ba2a2f3e77b55d03051ff9c24ad65e7 bucephalus
406 406 % strip again
407 407 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
408 408 created new head
409 409 merging foo
410 410 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
411 411 (branch merge, don't forget to commit)
412 412 changeset: 3:99615015637b
413 413 tag: tip
414 414 parent: 2:20cbbe65cff7
415 415 parent: 1:d2871fc282d4
416 416 user: test
417 417 date: Thu Jan 01 00:00:00 1970 +0000
418 418 summary: merge
419 419
420 420 changeset: 2:20cbbe65cff7
421 421 parent: 0:53245c60e682
422 422 user: test
423 423 date: Thu Jan 01 00:00:00 1970 +0000
424 424 summary: change foo 2
425 425
426 426 changeset: 1:d2871fc282d4
427 427 user: test
428 428 date: Thu Jan 01 00:00:00 1970 +0000
429 429 summary: change foo 1
430 430
431 431 changeset: 0:53245c60e682
432 432 user: test
433 433 date: Thu Jan 01 00:00:00 1970 +0000
434 434 summary: add foo
435 435
436 436 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
437 437 saving bundle to
438 438 saving bundle to
439 439 adding branch
440 440 adding changesets
441 441 adding manifests
442 442 adding file changes
443 443 added 1 changesets with 1 changes to 1 files
444 444 changeset: 1:20cbbe65cff7
445 445 tag: tip
446 446 user: test
447 447 date: Thu Jan 01 00:00:00 1970 +0000
448 448 summary: change foo 2
449 449
450 450 changeset: 0:53245c60e682
451 451 user: test
452 452 date: Thu Jan 01 00:00:00 1970 +0000
453 453 summary: add foo
454 454
455 455 % qclone
456 456 abort: versioned patch repository not found (see qinit -c)
457 457 adding .hg/patches/patch1
458 458 main repo:
459 459 rev 1: change foo
460 460 rev 0: add foo
461 461 patch repo:
462 462 rev 0: checkpoint
463 463 updating working directory
464 464 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
465 465 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
466 466 main repo:
467 467 rev 0: add foo
468 468 patch repo:
469 469 rev 0: checkpoint
470 470 Patch queue now empty
471 471 main repo:
472 472 rev 0: add foo
473 473 patch repo:
474 474 rev 0: checkpoint
475 475 updating working directory
476 476 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
477 477 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
478 478 main repo:
479 479 rev 0: add foo
480 480 patch repo:
481 481 rev 0: checkpoint
482 482 % test applying on an empty file (issue 1033)
483 483 adding a
484 484 Patch queue now empty
485 485 applying changea
486 486 Now at: changea
487 487 % test qpush with --force, issue1087
488 488 adding bye.txt
489 489 adding hello.txt
490 490 Patch queue now empty
491 491 % qpush should fail, local changes
492 492 abort: local changes found, refresh first
493 493 % apply force, should not discard changes with empty patch
494 494 applying empty
495 /usr/bin/patch: **** Only garbage was found in the patch input.
495 patch: **** Only garbage was found in the patch input.
496 496 patch failed, unable to continue (try -v)
497 497 patch empty is empty
498 498 Now at: empty
499 499 diff -r bf5fc3f07a0a hello.txt
500 500 --- a/hello.txt
501 501 +++ b/hello.txt
502 502 @@ -1,1 +1,2 @@
503 503 hello
504 504 +world
505 505 diff -r 9ecee4f634e3 hello.txt
506 506 --- a/hello.txt
507 507 +++ b/hello.txt
508 508 @@ -1,1 +1,2 @@
509 509 hello
510 510 +world
511 511 changeset: 1:bf5fc3f07a0a
512 512 tag: qtip
513 513 tag: tip
514 514 tag: empty
515 515 tag: qbase
516 516 user: test
517 517 date: Thu Jan 01 00:00:00 1970 +0000
518 518 summary: imported patch empty
519 519
520 520
521 521 Patch queue now empty
522 522 % qpush should fail, local changes
523 523 abort: local changes found, refresh first
524 524 % apply force, should discard changes in hello, but not bye
525 525 applying empty
526 526 Now at: empty
527 527 M bye.txt
528 528 diff -r ba252371dbc1 bye.txt
529 529 --- a/bye.txt
530 530 +++ b/bye.txt
531 531 @@ -1,1 +1,2 @@
532 532 bye
533 533 +universe
534 534 diff -r 9ecee4f634e3 bye.txt
535 535 --- a/bye.txt
536 536 +++ b/bye.txt
537 537 @@ -1,1 +1,2 @@
538 538 bye
539 539 +universe
540 540 diff -r 9ecee4f634e3 hello.txt
541 541 --- a/hello.txt
542 542 +++ b/hello.txt
543 543 @@ -1,1 +1,3 @@
544 544 hello
545 545 +world
546 546 +universe
General Comments 0
You need to be logged in to leave comments. Login now