##// END OF EJS Templates
obsolete: warns if markers exist in a repo where the feature is not enabled...
obsolete: warns if markers exist in a repo where the feature is not enabled We don't simply abort to allow the user to run other diagnostic commands.

File last commit:

r16913:f2719b38 default
r17297:6955d69a stable
Show More
test-mq-qpush-fail.t
426 lines | 8.1 KiB | text/troff | Tads3Lexer
/ tests / test-mq-qpush-fail.t
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 Test that qpush cleans things up if it doesn't complete
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init repo
$ cd repo
$ echo foo > foo
$ hg ci -Am 'add foo'
adding foo
$ touch untracked-file
$ echo 'syntax: glob' > .hgignore
$ echo '.hgignore' >> .hgignore
$ hg qinit
test qpush on empty series
$ hg qpush
no patches in series
$ hg qnew patch1
$ echo >> foo
$ hg qrefresh -m 'patch 1'
$ hg qnew patch2
$ echo bar > bar
$ hg add bar
$ hg qrefresh -m 'patch 2'
$ hg qnew --config 'mq.plain=true' bad-patch
$ echo >> foo
$ hg qrefresh
$ hg qpop -a
popping bad-patch
popping patch2
popping patch1
patch queue now empty
$ python -c 'print "\xe9"' > message
$ cat .hg/patches/bad-patch >> message
$ mv message .hg/patches/bad-patch
$ hg qpush -a && echo 'qpush succeded?!'
applying patch1
applying patch2
applying bad-patch
transaction abort!
rollback completed
cleaning up working directory...done
Mads Kiilerich
tests: use (esc) for all non-ASCII test output
r12942 abort: decoding near '\xe9': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 [255]
$ hg parents
changeset: 0:bbd179dfa0a7
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo
Matt Mackall
mq: fix qpush recursion in _findtags when status file is wrong (issue2664)...
r13508 test corrupt status file
$ hg qpush
applying patch1
now at: patch1
$ cp .hg/patches/status .hg/patches/status.orig
$ hg qpop
popping patch1
patch queue now empty
$ cp .hg/patches/status.orig .hg/patches/status
$ hg qpush
mq status file refers to unknown node * (glob)
abort: working directory revision is not qtip
[255]
$ rm .hg/patches/status .hg/patches/status.orig
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 bar should be gone; other unknown/ignored files should still be around
$ hg status -A
? untracked-file
I .hgignore
C foo
preparing qpush of a missing patch
$ hg qpop -a
no patches applied
$ hg qpush
applying patch1
now at: patch1
$ rm .hg/patches/patch2
now we expect the push to fail, but it should NOT complain about patch1
$ hg qpush
applying patch2
unable to read patch2
now at: patch1
[1]
preparing qpush of missing patch with no patch applied
$ hg qpop -a
popping patch1
patch queue now empty
$ rm .hg/patches/patch1
qpush should fail the same way as below
$ hg qpush
applying patch1
unable to read patch1
[1]
Afuna
mq: catch attempt to qpush to an earlier patch (issue2587)...
r13369
Test qpush to a patch below the currently applied patch.
$ hg qq -c guardedseriesorder
$ hg qnew a
$ hg qguard +block
$ hg qnew b
$ hg qnew c
$ hg qpop -a
popping c
popping b
popping a
patch queue now empty
try to push and pop while a is guarded
$ hg qpush a
Martin Geisler
mq: print "'foo' 'bar'", not "['foo', 'bar']" when showing guards...
r14464 cannot push 'a' - guarded by '+block'
Afuna
mq: catch attempt to qpush to an earlier patch (issue2587)...
r13369 [1]
$ hg qpush -a
applying b
patch b is empty
applying c
patch c is empty
now at: c
now try it when a is unguarded, and we're at the top of the queue
$ hg qsel block
number of guarded, applied patches has changed from 1 to 0
$ hg qpush b
abort: cannot push to a previous patch: b
[255]
$ hg qpush a
abort: cannot push to a previous patch: a
[255]
and now we try it one more time with a unguarded, while we're not at the top of the queue
$ hg qpop b
popping c
now at: b
$ hg qpush a
abort: cannot push to a previous patch: a
[255]
Patrick Mezard
mq: backup local changes in qpop --force (issue3433)
r16633 test qpop --force and backup files
$ hg qpop -a
popping b
patch queue now empty
$ hg qq --create force
$ echo a > a
$ echo b > b
$ echo c > c
$ hg ci -Am add a b c
$ echo a >> a
$ hg rm b
$ hg rm c
$ hg qnew p1
$ echo a >> a
$ echo bb > b
$ hg add b
$ echo cc > c
$ hg add c
$ hg qpop --force --verbose
saving current version of a as a.orig
saving current version of b as b.orig
saving current version of c as c.orig
popping p1
patch queue now empty
$ hg st
? a.orig
? b.orig
? c.orig
? untracked-file
$ cat a.orig
a
a
a
$ cat b.orig
bb
$ cat c.orig
cc
Patrick Mezard
mq: backup local changes in qpush --force...
r16634
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635 test qpop --force --no-backup
$ hg qpush
applying p1
now at: p1
$ rm a.orig
$ echo a >> a
$ hg qpop --force --no-backup --verbose
popping p1
patch queue now empty
$ test -f a.orig && echo 'error: backup with --no-backup'
[1]
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 test qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653
$ hg qpush
applying p1
now at: p1
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes --force
abort: cannot use both --force and --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 [255]
$ echo a >> a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 abort: local changes found, refresh first
[255]
$ hg revert -qa a
$ rm a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 abort: local changes found, refresh first
[255]
$ hg rm -A a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 abort: local changes found, refresh first
[255]
$ hg revert -qa a
$ echo b > b
$ hg add b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 abort: local changes found, refresh first
[255]
$ hg forget b
$ echo d > d
$ hg add d
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
Patrick Mezard
mq: introduce qpop --check...
r16653 popping p1
patch queue now empty
$ hg forget d
$ rm d
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 test qpush --force and backup files
$ echo a >> a
$ hg qnew p2
$ echo b >> b
$ echo d > d
$ echo e > e
$ hg add d e
$ hg rm c
$ hg qnew p3
$ hg qpop -a
popping p3
popping p2
patch queue now empty
$ echo a >> a
$ echo b1 >> b
$ echo d1 > d
$ hg add d
$ echo e1 > e
$ hg qpush -a --force --verbose
applying p2
saving current version of a as a.orig
patching file a
a
applying p3
saving current version of b as b.orig
saving current version of d as d.orig
patching file b
patching file c
patching file d
file d already exists
1 out of 1 hunks FAILED -- saving rejects to file d.rej
patching file e
file e already exists
1 out of 1 hunks FAILED -- saving rejects to file e.rej
patch failed to apply
b
patch failed, rejects left in working dir
errors during apply, please fix and refresh p3
[2]
$ cat a.orig
a
a
$ cat b.orig
b
b1
$ cat d.orig
d1
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635
test qpush --force --no-backup
$ hg revert -qa
$ hg qpop -a
popping p3
popping p2
patch queue now empty
$ echo a >> a
$ rm a.orig
$ hg qpush --force --no-backup --verbose
applying p2
patching file a
a
now at: p2
$ test -f a.orig && echo 'error: backup with --no-backup'
[1]
test qgoto --force --no-backup
$ hg qpop
popping p2
patch queue now empty
$ echo a >> a
$ hg qgoto --force --no-backup p2 --verbose
applying p2
patching file a
a
now at: p2
$ test -f a.orig && echo 'error: backup with --no-backup'
[1]
Patrick Mezard
mq: introduce qpush --check...
r16654
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 test qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes --force
abort: cannot use both --force and --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 [255]
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes --exact
abort: cannot use --exact and --keep-changes together
Patrick Mezard
mq: introduce qpush --check...
r16654 [255]
$ echo b >> b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p3
errors during apply, please fix and refresh p2
[2]
$ rm b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p3
errors during apply, please fix and refresh p2
[2]
$ hg rm -A b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p3
errors during apply, please fix and refresh p2
[2]
$ hg revert -aq b
$ echo d > d
$ hg add d
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p3
errors during apply, please fix and refresh p2
[2]
$ hg forget d
$ rm d
$ hg qpop
popping p2
patch queue now empty
$ echo b >> b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush -a --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p2
applying p3
errors during apply, please fix and refresh p2
[2]
$ hg qtop
p2
$ hg parents --template "{rev} {desc}\n"
2 imported patch p2
$ hg st b
M b
$ cat b
b
b
Patrick Mezard
mq: introduce qgoto --check
r16655
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 test qgoto --keep-changes
Patrick Mezard
mq: introduce qgoto --check
r16655
$ hg revert -aq b
$ rm e
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qgoto --keep-changes --force p3
abort: cannot use both --force and --keep-changes
Patrick Mezard
mq: introduce qgoto --check
r16655 [255]
$ echo a >> a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qgoto --keep-changes p3
Patrick Mezard
mq: introduce qgoto --check
r16655 applying p3
now at: p3
$ hg st a
M a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qgoto --keep-changes p2
Patrick Mezard
mq: introduce qgoto --check
r16655 popping p3
now at: p2
$ hg st a
M a
Patrick Mezard
mq: introduce mq.check setting...
r16656
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 test mq.keepchanges setting
Patrick Mezard
mq: introduce mq.check setting...
r16656
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qpush
Patrick Mezard
mq: introduce mq.check setting...
r16656 applying p3
now at: p3
$ hg st a
M a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qpop
Patrick Mezard
mq: introduce mq.check setting...
r16656 popping p3
now at: p2
$ hg st a
M a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qgoto p3
Patrick Mezard
mq: introduce mq.check setting...
r16656 applying p3
now at: p3
$ hg st a
M a
$ echo b >> b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qpop --force
Patrick Mezard
mq: introduce mq.check setting...
r16656 popping p3
now at: p2
$ hg st b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qpush --exact
Patrick Mezard
mq: introduce mq.check setting...
r16656 abort: local changes found, refresh first
[255]
$ hg revert -qa a
$ hg qpop
popping p2
patch queue now empty
$ echo a >> a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg --config mq.keepchanges=1 qpush --force
Patrick Mezard
mq: introduce mq.check setting...
r16656 applying p2
now at: p2
$ hg st a
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..