##// END OF EJS Templates
py3: use sys.stdout instead of print in test-mq-qpush-fail.t...
py3: use sys.stdout instead of print in test-mq-qpush-fail.t Differential Revision: https://phab.mercurial-scm.org/D3218

File last commit:

r37542:5d81f1b7 default
r37542:5d81f1b7 default
Show More
test-mq-qpush-fail.t
471 lines | 9.5 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'
Mads Kiilerich
mq: upgrade non-plain patches to HG format when setting parent in patchheader...
r22545 $ hg qnew --config 'mq.plain=true' -U bad-patch
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 $ echo >> foo
$ hg qrefresh
$ hg qpop -a
popping bad-patch
popping patch2
popping patch1
patch queue now empty
Pulkit Goyal
py3: use sys.stdout instead of print in test-mq-qpush-fail.t...
r37542 $ $PYTHON -c 'import sys; getattr(sys.stdout, "buffer", sys.stdout).write(b"\xe9\n")' > message
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 $ cat .hg/patches/bad-patch >> message
$ mv message .hg/patches/bad-patch
FUJIWARA Katsunori
localrepo: use changelog.hasnode instead of self.__contains__...
r24992 $ cat > $TESTTMP/wrapplayback.py <<EOF
> import os
> from mercurial import extensions, transaction
> def wrapplayback(orig,
> journal, report, opener, vfsmap, entries, backupentries,
FUJIWARA Katsunori
transaction: avoid file stat ambiguity only for files in blacklist...
r33278 > unlink=True, checkambigfiles=None):
> orig(journal, report, opener, vfsmap, entries, backupentries, unlink,
> checkambigfiles)
FUJIWARA Katsunori
localrepo: use changelog.hasnode instead of self.__contains__...
r24992 > # Touching files truncated at "transaction.abort" causes
> # forcible re-loading invalidated filecache properties
> # (including repo.changelog)
> for f, o, _ignore in entries:
> if o or not unlink:
> os.utime(opener.join(f), (0.0, 0.0))
> def extsetup(ui):
> extensions.wrapfunction(transaction, '_playback', wrapplayback)
> EOF
$ hg qpush -a --config extensions.wrapplayback=$TESTTMP/wrapplayback.py && echo 'qpush succeeded?!'
Matt Mackall
tests: unify test-mq-qpush-fail
r12467 applying patch1
applying patch2
applying bad-patch
transaction abort!
rollback completed
Matt Mackall
mq: use cmdutil.revert instead of hg.revert...
r26654 cleaning up working directory...
reverting foo
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
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
FUJIWARA Katsunori
mq: report correct numbers for changing "number of guarded, applied patches"...
r22453
$ hg qapplied -v
0 G a
1 A b
2 A c
Afuna
mq: catch attempt to qpush to an earlier patch (issue2587)...
r13369 $ hg qsel block
$ 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
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Patrick Mezard
mq: introduce qpop --check...
r16653 [255]
$ hg revert -qa a
$ rm a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Patrick Mezard
mq: introduce qpop --check...
r16653 [255]
$ hg rm -A a
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Patrick Mezard
mq: introduce qpop --check...
r16653 [255]
$ hg revert -qa a
$ echo b > b
$ hg add b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpop --keep-changes
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Patrick Mezard
mq: introduce qpop --check...
r16653 [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
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 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
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 b
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Yuya Nishihara
commands: say "working directory" in full spelling
r24365 patch failed, rejects left in working directory
timeless@mozdev.org
mq: consistently use qrefresh
r26780 errors during apply, please fix and qrefresh p3
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 [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
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635 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
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Patrick Mezard
mq: add --no-backup for qpush/qpop/qgoto
r16635 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
Matt Mackall
mq: avoid silent failure when single patch doesn't apply (issue4604)...
r24826 abort: conflicting local changes found
(did you forget to qrefresh?)
[255]
Patrick Mezard
mq: introduce qpush --check...
r16654 $ rm b
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 $ hg qpush --keep-changes
Patrick Mezard
mq: introduce qpush --check...
r16654 applying p3
Matt Mackall
mq: avoid silent failure when single patch doesn't apply (issue4604)...
r24826 abort: conflicting local changes found
(did you forget to qrefresh?)
[255]
Patrick Mezard
mq: introduce qpush --check...
r16654 $ 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
Matt Mackall
mq: avoid silent failure when single patch doesn't apply (issue4604)...
r24826 abort: conflicting local changes found
(did you forget to qrefresh?)
[255]
Patrick Mezard
mq: introduce qpush --check...
r16654 $ 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
Matt Mackall
mq: avoid silent failure when single patch doesn't apply (issue4604)...
r24826 abort: conflicting local changes found
(did you forget to qrefresh?)
[255]
Patrick Mezard
mq: introduce qpush --check...
r16654 $ 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
Matt Mackall
mq: avoid silent failure when single patch doesn't apply (issue4604)...
r24826 abort: conflicting local changes found
(did you forget to qrefresh?)
[255]
Patrick Mezard
mq: introduce qpush --check...
r16654 $ 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
Christian Delahousse
mq: let the user choose where .orig files are kept...
r26943 $ hg --config mq.keepchanges=1 qpop --force --config 'ui.origbackuppath=.hg/origbackups'
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
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Patrick Mezard
mq: introduce mq.check setting...
r16656 [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
Christian Delahousse
mq: let the user choose where .orig files are kept...
r26943 test previous qpop (with --force and --config) saved .orig files to where user
wants them
$ ls .hg/origbackups
Mark Thomas
scmutil: don't append .orig to backups in origbackuppath (BC)...
r34145 b
Christian Delahousse
mq: let the user choose where .orig files are kept...
r26943 $ rm -rf .hg/origbackups
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..