##// END OF EJS Templates
narrow: fix flaky behavior described in issue6150...
narrow: fix flaky behavior described in issue6150 This has been plaguing the CI for a good while, and it doesn't appear to have an easy fix proposed yet. The solution in this change is to always do an unambiguous (but expensive) lookup in case of comparison. This should always be correct, albeit suboptimal. Differential Revision: https://phab.mercurial-scm.org/D10034

File last commit:

r46518:95c4cca6 default
r47280:b994db7c stable
Show More
test-mq.t
1622 lines | 31.0 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-mq
r11894 $ checkundo()
> {
> if [ -f .hg/store/undo ]; then
> echo ".hg/store/undo still exists after $1"
> fi
> }
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> mq =
> [mq]
> plain = true
> EOF
Nicolas Dumazet
tests: unify test-mq
r11894
help
$ hg help mq
mq extension - manage a stack of patches
This extension lets you work with a stack of patches in a Mercurial
repository. It manages two stacks of patches - all known patches, and applied
patches (subset of known patches).
Known patches are represented as patch files in the .hg/patches directory.
Applied patches are both patch files and changesets.
Yuya Nishihara
help: uppercase command placeholder...
r30879 Common tasks (use 'hg help COMMAND' for more details):
Nicolas Dumazet
tests: unify test-mq
r11894
create new patch qnew
import existing patch qimport
print patch series qseries
print applied patches qapplied
add known patch to applied stack qpush
remove patch from applied stack qpop
refresh contents of top applied patch qrefresh
By default, mq will automatically use git patches when required to avoid
losing file mode changes, copy records, binary files or empty files creations
timeless@mozdev.org
spelling: behaviour -> behavior
r26098 or deletions. This behavior can be configured with:
Nicolas Dumazet
tests: unify test-mq
r11894
[mq]
git = auto/keep/yes/no
If set to 'keep', mq will obey the [diff] section configuration while
preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq
will override the [diff] section and always generate git or regular patches,
possibly losing data in the second case.
timeless
minirst: change hgrole to use single quotes...
r27729 It may be desirable for mq changesets to be kept in the secret phase (see 'hg
help phases'), which can be enabled with the following setting:
Matt Mackall
mq: add secret setting
r16017
[mq]
secret = True
Nicolas Dumazet
tests: unify test-mq
r11894 You will by default be managing a patch queue named "patches". You can create
timeless
minirst: change hgrole to use single quotes...
r27729 other, independent patch queues with the 'hg qqueue' command.
Nicolas Dumazet
tests: unify test-mq
r11894
Patrick Mezard
mq: introduce mq.check setting...
r16656 If the working directory contains uncommitted files, qpush, qpop and qgoto
abort immediately. If -f/--force is used, the changes are discarded. Setting:
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 [mq]
keepchanges = True
Patrick Mezard
mq: introduce mq.check setting...
r16656
Patrick Mezard
mq: rename --check into --keep-changes...
r16733 make them behave as if --keep-changes were passed, and non-conflicting local
Patrick Mezard
mq: introduce mq.check setting...
r16656 changes will be tolerated and preserved. If incompatible options such as
-f/--force or --exact are passed, this setting is ignored.
Pierre-Yves David
mq: extract strip function as its standalone extension (issue3824)...
r19826 This extension used to provide a strip command. This command now lives in the
strip extension.
Nicolas Dumazet
tests: unify test-mq
r11894 list of commands:
rdamazio@google.com
help: assigning categories to existing commands...
r40329 Repository creation:
qclone clone main and patch repository at same time
Change creation:
qnew create a new patch
qrefresh update the current patch
Change manipulation:
qfold fold the named patches into the current patch
Change organization:
Olav Reinert
help: fix column alignment in "hg help" output...
r15862 qapplied print the patches already applied
qdelete remove patches from queue
qfinish move applied patches into repository history
qgoto push or pop patches until named patch is at top of stack
qguard set or print guards for a patch
qheader print the header of the topmost or specified patch
Patrick Mezard
mq: fix qnext when all remaining patches are guarded...
r16063 qnext print the name of the next pushable patch
Olav Reinert
help: fix column alignment in "hg help" output...
r15862 qpop pop the current patch off the stack
Patrick Mezard
mq: fix qapplied --last and qprev documentation (issue3282)...
r16188 qprev print the name of the preceding applied patch
Olav Reinert
help: fix column alignment in "hg help" output...
r15862 qpush push the next patch onto the stack
qqueue manage multiple patch queues
qrename rename a patch
qselect set or print guarded patches to push
qseries print the entire series file
qtop print the name of the current patch
qunapplied print the patches not yet applied
Nicolas Dumazet
tests: unify test-mq
r11894
rdamazio@google.com
help: assigning categories to existing commands...
r40329 File content management:
qdiff diff of the current patch and subsequent modifications
Change import/export:
qimport import a patch or existing changeset
timeless
help: use single quotes in use warning
r29974 (use 'hg help -v mq' to show built-in aliases and global options)
Nicolas Dumazet
tests: unify test-mq
r11894
$ hg init a
$ cd a
$ echo a > a
$ hg ci -Ama
adding a
$ hg clone . ../k
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ mkdir b
$ echo z > b/z
$ hg ci -Ama
adding b/z
qinit
$ hg qinit
$ cd ..
$ hg init b
-R qinit
$ hg -R b qinit
$ hg init c
qinit -c
$ hg --cwd c qinit -c
$ hg -R c/.hg/patches st
A .hgignore
A series
qinit; qinit -c
$ hg init d
$ cd d
$ hg qinit
$ hg qinit -c
qinit -c should create both files if they don't exist
$ cat .hg/patches/.hgignore
^\.hg
^\.mq
syntax: glob
status
guards
$ cat .hg/patches/series
$ hg qinit -c
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: repository $TESTTMP/d/.hg/patches already exists
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894 $ cd ..
$ echo '% qinit; <stuff>; qinit -c'
% qinit; <stuff>; qinit -c
$ hg init e
$ cd e
$ hg qnew A
$ checkundo qnew
$ echo foo > foo
Pierre-Yves David
mq: have mq create secret changeset only
r15926 $ hg phase -r qbase
Matt Mackall
mq: add secret setting
r16017 0: draft
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg add foo
$ hg qrefresh
Pierre-Yves David
mq: have mq create secret changeset only
r15926 $ hg phase -r qbase
Matt Mackall
mq: add secret setting
r16017 0: draft
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qnew B
$ echo >> foo
$ hg qrefresh
$ echo status >> .hg/patches/.hgignore
$ echo bleh >> .hg/patches/.hgignore
$ hg qinit -c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding .hg/patches/A
adding .hg/patches/B
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg -R .hg/patches status
A .hgignore
A A
A B
A series
qinit -c shouldn't touch these files if they already exist
$ cat .hg/patches/.hgignore
status
bleh
$ cat .hg/patches/series
A
B
Dan Villiom Podlaski Christiansen
mq: extend support for the --mq argument to extension commands...
r12036 add an untracked file
$ echo >> .hg/patches/flaf
Nicolas Dumazet
tests: unify test-mq
r11894 status --mq with color (issue2096)
Danek Duvall
color: add support for terminfo-based attributes and color...
r13987 $ hg status --mq --config extensions.color= --config color.mode=ansi --color=always
Matt Mackall
status: use condwrite to avoid zero-width format string hack
r17910 \x1b[0;32;1mA \x1b[0m\x1b[0;32;1m.hgignore\x1b[0m (esc)
\x1b[0;32;1mA \x1b[0m\x1b[0;32;1mA\x1b[0m (esc)
\x1b[0;32;1mA \x1b[0m\x1b[0;32;1mB\x1b[0m (esc)
\x1b[0;32;1mA \x1b[0m\x1b[0;32;1mseries\x1b[0m (esc)
\x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mflaf\x1b[0m (esc)
Dan Villiom Podlaski Christiansen
mq: extend support for the --mq argument to extension commands...
r12036
try the --mq option on a command provided by an extension
$ hg purge --mq --verbose --config extensions.purge=
Martin Geisler
purge: lowercase messages
r16930 removing file flaf
Dan Villiom Podlaski Christiansen
mq: extend support for the --mq argument to extension commands...
r12036
Nicolas Dumazet
tests: unify test-mq
r11894 $ cd ..
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 #if no-outer-repo
Nicolas Dumazet
tests: unify test-mq
r11894 init --mq without repo
$ mkdir f
$ cd f
$ hg init --mq
Martin Geisler
Merge with stable
r12070 abort: there is no Mercurial repository here (.hg not found)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894 $ cd ..
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 #endif
Nicolas Dumazet
tests: unify test-mq
r11894 init --mq with repo path
$ hg init g
$ hg init --mq g
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ test -d g/.hg/patches/.hg
Nicolas Dumazet
tests: unify test-mq
r11894
init --mq with nonexistent directory
$ hg init --mq nonexistentdir
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: repository nonexistentdir not found
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
init --mq with bundle (non "local")
$ hg -R a bundle --all a.bundle >/dev/null
$ hg init --mq a.bundle
abort: only a local queue repository may be initialized
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
$ cd a
$ hg qnew -m 'foo bar' test.patch
$ echo '# comment' > .hg/patches/series.tmp
$ echo >> .hg/patches/series.tmp # empty line
$ cat .hg/patches/series >> .hg/patches/series.tmp
$ mv .hg/patches/series.tmp .hg/patches/series
qrefresh
$ echo a >> a
$ hg qrefresh
$ cat .hg/patches/test.patch
foo bar
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 diff -r [a-f0-9]* a (re)
--- a/a\t(?P<date>.*) (re)
\+\+\+ b/a\t(?P<date2>.*) (re)
Nicolas Dumazet
tests: unify test-mq
r11894 @@ -1,1 +1,2 @@
a
+a
empty qrefresh
$ hg qrefresh -X a
revision:
$ hg diff -r -2 -r -1
patch:
$ cat .hg/patches/test.patch
foo bar
working dir diff:
$ hg diff --nodates -q
Pulkit Goyal
diff: make sure we output stat even when --git is not passed (issue4037) (BC)...
r41950 diff -r dde259bd5934 a
Nicolas Dumazet
tests: unify test-mq
r11894 --- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+a
restore things
$ hg qrefresh
$ checkundo qrefresh
qpop
$ hg qpop
popping test.patch
patch queue now empty
$ checkundo qpop
qpush with dump of tag cache
Dump the tag cache to ensure that it has exactly one head after qpush.
Gregory Szorc
tags: explicitly log which tags cache file is being written...
r24763 $ rm -f .hg/cache/tags2-visible
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg tags > /dev/null
Gregory Szorc
tags: explicitly log which tags cache file is being written...
r24763 .hg/cache/tags2-visible (pre qpush):
Nicolas Dumazet
tests: unify test-mq
r11894
Gregory Szorc
tags: explicitly log which tags cache file is being written...
r24763 $ cat .hg/cache/tags2-visible
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 1 [\da-f]{40} (re)
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qpush
applying test.patch
now at: test.patch
Pierre-Yves David
mq: have mq create secret changeset only
r15926 $ hg phase -r qbase
Matt Mackall
mq: add secret setting
r16017 2: draft
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg tags > /dev/null
Gregory Szorc
tags: explicitly log which tags cache file is being written...
r24763 .hg/cache/tags2-visible (post qpush):
Nicolas Dumazet
tests: unify test-mq
r11894
Gregory Szorc
tags: explicitly log which tags cache file is being written...
r24763 $ cat .hg/cache/tags2-visible
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 2 [\da-f]{40} (re)
Nicolas Dumazet
tests: unify test-mq
r11894 $ checkundo qpush
$ cd ..
pop/push outside repo
$ hg -R a qpop
popping test.patch
patch queue now empty
$ hg -R a qpush
applying test.patch
now at: test.patch
$ cd a
$ hg qnew test2.patch
qrefresh in subdir
$ cd b
$ echo a > a
$ hg add a
$ hg qrefresh
pop/push -a in subdir
$ hg qpop -a
popping test2.patch
popping test.patch
patch queue now empty
$ hg --traceback qpush -a
applying test.patch
applying test2.patch
now at: test2.patch
setting columns & formatted tests truncating (issue1912)
Pierre-Yves David
color: turn on by default (but for windows)...
r32026 $ COLUMNS=4 hg qseries --config ui.formatted=true --color=no
Nicolas Dumazet
tests: unify test-mq
r11894 test.patch
test2.patch
Pierre-Yves David
color: turn on by default (but for windows)...
r32026 $ COLUMNS=20 hg qseries --config ui.formatted=true -vs --color=no
Nicolas Dumazet
tests: unify test-mq
r11894 0 A test.patch: f...
1 A test2.patch:
$ hg qpop
popping test2.patch
now at: test.patch
$ hg qseries -vs
0 A test.patch: foo bar
1 U test2.patch:
$ hg sum | grep mq
mq: 1 applied, 1 unapplied
$ hg qpush
applying test2.patch
now at: test2.patch
$ hg sum | grep mq
mq: 2 applied
$ hg qapplied
test.patch
test2.patch
$ hg qtop
test2.patch
prev
$ hg qapp -1
test.patch
next
$ hg qunapp -1
all patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
$ hg qpop
popping test2.patch
now at: test.patch
commit should fail
$ hg commit
abort: cannot commit over an applied mq patch
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
Pierre-Yves David
mq-safety: don't apply safety on non-outgoing changeset...
r15952 push should fail if draft
Nicolas Dumazet
tests: unify test-mq
r11894
$ hg push ../../k
pushing to ../../k
abort: source has mq patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
import should fail
$ hg st .
$ echo foo >> ../a
$ hg diff > ../../import.diff
$ hg revert --no-backup ../a
$ hg import ../../import.diff
abort: cannot import over an applied patch
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg st
import --no-commit should succeed
$ hg import --no-commit ../../import.diff
applying ../../import.diff
$ hg st
M a
$ hg revert --no-backup ../a
qunapplied
$ hg qunapplied
test2.patch
qpush/qpop with index
$ hg qnew test1b.patch
$ echo 1b > 1b
$ hg add 1b
$ hg qrefresh
$ hg qpush 2
applying test2.patch
now at: test2.patch
$ hg qpop 0
popping test2.patch
popping test1b.patch
now at: test.patch
$ hg qpush test.patch+1
applying test1b.patch
now at: test1b.patch
$ hg qpush test.patch+2
applying test2.patch
now at: test2.patch
$ hg qpop test2.patch-1
popping test2.patch
now at: test1b.patch
$ hg qpop test2.patch-2
popping test1b.patch
now at: test.patch
$ hg qpush test1b.patch+1
applying test1b.patch
applying test2.patch
now at: test2.patch
qpush --move
$ hg qpop -a
popping test2.patch
popping test1b.patch
popping test.patch
patch queue now empty
$ hg qguard test1b.patch -- -negguard
$ hg qguard test2.patch -- +posguard
$ hg qpush --move test2.patch # can't move guarded patch
Martin Geisler
mq: print "'foo' 'bar'", not "['foo', 'bar']" when showing guards...
r14464 cannot push 'test2.patch' - guarded by '+posguard'
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qselect posguard
number of unguarded, unapplied patches has changed from 2 to 3
$ hg qpush --move test2.patch # move to front
applying test2.patch
now at: test2.patch
$ hg qpush --move test1b.patch # negative guard unselected
applying test1b.patch
now at: test1b.patch
$ hg qpush --move test.patch # noop move
applying test.patch
now at: test.patch
$ hg qseries -v
0 A test2.patch
1 A test1b.patch
2 A test.patch
$ hg qpop -a
popping test.patch
popping test1b.patch
popping test2.patch
patch queue now empty
cleaning up
$ hg qselect --none
guards deactivated
number of unguarded, unapplied patches has changed from 3 to 2
$ hg qguard --none test1b.patch
$ hg qguard --none test2.patch
$ hg qpush --move test.patch
applying test.patch
now at: test.patch
$ hg qpush --move test1b.patch
applying test1b.patch
now at: test1b.patch
$ hg qpush --move bogus # nonexistent patch
abort: patch bogus not in series
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qpush --move # no patch
abort: please specify the patch to move
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qpush --move test.patch # already applied
abort: cannot push to a previous patch: test.patch
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
FUJIWARA Katsunori
tests: fix portability of sed usage in test-mq...
r16331 $ sed '2i\
> # make qtip index different in series and fullseries
> ' `hg root`/.hg/patches/series > $TESTTMP/sedtmp
$ cp $TESTTMP/sedtmp `hg root`/.hg/patches/series
Mads Kiilerich
mq: fix qpush --move with comments in series file between applied patches...
r16303 $ cat `hg root`/.hg/patches/series
# comment
# make qtip index different in series and fullseries
test.patch
test1b.patch
test2.patch
$ hg qpush --move test2.patch
Nicolas Dumazet
tests: unify test-mq
r11894 applying test2.patch
now at: test2.patch
series after move
$ cat `hg root`/.hg/patches/series
Mads Kiilerich
mq: fix qpush --move with comments in series file between applied patches...
r16303 # comment
# make qtip index different in series and fullseries
Nicolas Dumazet
tests: unify test-mq
r11894 test.patch
test1b.patch
test2.patch
pop, qapplied, qunapplied
$ hg qseries -v
0 A test.patch
1 A test1b.patch
2 A test2.patch
qapplied -1 test.patch
$ hg qapplied -1 test.patch
only one patch applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
qapplied -1 test1b.patch
$ hg qapplied -1 test1b.patch
test.patch
qapplied -1 test2.patch
$ hg qapplied -1 test2.patch
test1b.patch
qapplied -1
$ hg qapplied -1
test1b.patch
qapplied
$ hg qapplied
test.patch
test1b.patch
test2.patch
qapplied test1b.patch
$ hg qapplied test1b.patch
test.patch
test1b.patch
qunapplied -1
$ hg qunapplied -1
all patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
qunapplied
$ hg qunapplied
popping
$ hg qpop
popping test2.patch
now at: test1b.patch
qunapplied -1
$ hg qunapplied -1
test2.patch
qunapplied
$ hg qunapplied
test2.patch
qunapplied test2.patch
$ hg qunapplied test2.patch
qunapplied -1 test2.patch
$ hg qunapplied -1 test2.patch
all patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
popping -a
$ hg qpop -a
popping test1b.patch
popping test.patch
patch queue now empty
qapplied
$ hg qapplied
qapplied -1
$ hg qapplied -1
no patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qpush
applying test.patch
now at: test.patch
push should succeed
$ hg qpop -a
popping test.patch
patch queue now empty
$ hg push ../../k
pushing to ../../k
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
we want to start with some patches applied
$ hg qpush -a
applying test.patch
applying test1b.patch
applying test2.patch
now at: test2.patch
% pops all patches and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop -a
Nicolas Dumazet
tests: unify test-mq
r11894 popping test2.patch
popping test1b.patch
popping test.patch
patch queue now empty
% does nothing and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop -a
Nicolas Dumazet
tests: unify test-mq
r11894 no patches applied
% fails - nothing else to pop
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop
Nicolas Dumazet
tests: unify test-mq
r11894 no patches applied
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
% pushes a patch and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush
Nicolas Dumazet
tests: unify test-mq
r11894 applying test.patch
now at: test.patch
% pops a patch and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop
Nicolas Dumazet
tests: unify test-mq
r11894 popping test.patch
patch queue now empty
% pushes up to test1b.patch and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush test1b.patch
Nicolas Dumazet
tests: unify test-mq
r11894 applying test.patch
applying test1b.patch
now at: test1b.patch
% does nothing and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush test1b.patch
Nicolas Dumazet
tests: unify test-mq
r11894 qpush: test1b.patch is already at the top
% does nothing and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop test1b.patch
Nicolas Dumazet
tests: unify test-mq
r11894 qpop: test1b.patch is already at the top
% fails - can't push to this patch
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush test.patch
Nicolas Dumazet
tests: unify test-mq
r11894 abort: cannot push to a previous patch: test.patch
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
% fails - can't pop to this patch
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop test2.patch
Nicolas Dumazet
tests: unify test-mq
r11894 abort: patch test2.patch is not applied
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
% pops up to test.patch and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpop test.patch
Nicolas Dumazet
tests: unify test-mq
r11894 popping test1b.patch
now at: test.patch
% pushes all patches and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush -a
Nicolas Dumazet
tests: unify test-mq
r11894 applying test1b.patch
applying test2.patch
now at: test2.patch
% does nothing and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush -a
Nicolas Dumazet
tests: unify test-mq
r11894 all patches are currently applied
% fails - nothing else to push
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush
Nicolas Dumazet
tests: unify test-mq
r11894 patch series already fully applied
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
% does nothing and succeeds
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg qpush test2.patch
Nicolas Dumazet
tests: unify test-mq
r11894 qpush: test2.patch is already at the top
strip
$ cd ../../b
$ echo x>x
$ hg ci -Ama
adding x
Nicolas Dumazet
tests: use regular expressions instead of helpers
r11907 $ hg strip tip
Nicolas Dumazet
tests: unify test-mq
r11894 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Mads Kiilerich
tests: remove redundant globs...
r12640 saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg unbundle .hg/strip-backup/*
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 770eb8fce608 (1 drafts)
Nicolas Dumazet
tests: unify test-mq
r11894 (run 'hg update' to get a working copy)
strip with local changes, should complain
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo y>y
$ hg add y
Nicolas Dumazet
tests: use regular expressions instead of helpers
r11907 $ hg strip tip
Martin von Zweigbergk
strip: use bailifchanged() instead of reimplementing it...
r42691 abort: uncommitted changes
Martin von Zweigbergk
errors: introduce StateError and use it from commands and cmdutil...
r46444 [20]
Nicolas Dumazet
tests: unify test-mq
r11894
--force strip with local changes
Nicolas Dumazet
tests: use regular expressions instead of helpers
r11907 $ hg strip -f tip
Nicolas Dumazet
tests: unify test-mq
r11894 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/b/.hg/strip-backup/770eb8fce608-0ddcae0f-backup.hg
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Nicolas Dumazet
tests: unify test-mq
r11894
cd b; hg qrefresh
$ hg init refresh
$ cd refresh
$ echo a > a
$ hg ci -Ama
adding a
$ hg qnew -mfoo foo
$ echo a >> a
$ hg qrefresh
$ mkdir b
$ cd b
$ echo f > f
$ hg add f
$ hg qrefresh
$ cat ../.hg/patches/foo
foo
diff -r cb9a9f314b8b a
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 --- a/a\t(?P<date>.*) (re)
\+\+\+ b/a\t(?P<date>.*) (re)
Nicolas Dumazet
tests: unify test-mq
r11894 @@ -1,1 +1,2 @@
a
+a
diff -r cb9a9f314b8b b/f
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 --- /dev/null\t(?P<date>.*) (re)
\+\+\+ b/b/f\t(?P<date>.*) (re)
Nicolas Dumazet
tests: unify test-mq
r11894 @@ -0,0 +1,1 @@
+f
hg qrefresh .
$ hg qrefresh .
$ cat ../.hg/patches/foo
foo
diff -r cb9a9f314b8b b/f
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 --- /dev/null\t(?P<date>.*) (re)
\+\+\+ b/b/f\t(?P<date>.*) (re)
Nicolas Dumazet
tests: unify test-mq
r11894 @@ -0,0 +1,1 @@
+f
$ hg status
M a
qpush failure
$ cd ..
$ hg qrefresh
$ hg qnew -mbar bar
$ echo foo > foo
$ echo bar > bar
$ hg add foo bar
$ hg qrefresh
$ hg qpop -a
popping bar
popping foo
patch queue now empty
$ echo bar > foo
$ hg qpush -a
applying foo
applying bar
file foo already exists
1 out of 1 hunks FAILED -- saving rejects to file foo.rej
patch failed, unable to continue (try -v)
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 bar
Matt Mackall
tests: add exit codes to unified tests
r12316 [2]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg st
? foo
? foo.rej
mq tags
$ hg log --template '{rev} {tags}\n' -r qparent:qtip
0 qparent
1 foo qbase
2 bar qtip tip
Idan Kamara
mq: add a 'mq()' revset predicate that returns applied mq csets
r14210 mq revset
$ hg log -r 'mq()' --template '{rev}\n'
1
2
Martin von Zweigbergk
tests: use "hg help revisions.<predicate>" instead of grepping...
r30786 $ hg help revisions.mq
Idan Kamara
mq: add a 'mq()' revset predicate that returns applied mq csets
r14210 "mq()"
Changesets managed by MQ.
Martin von Zweigbergk
tests: use "hg help revisions.<predicate>" instead of grepping...
r30786
Nicolas Dumazet
tests: unify test-mq
r11894
bad node in status
$ hg qpop
popping bar
now at: foo
$ hg strip -qn tip
$ hg tip
changeset: 0:cb9a9f314b8b
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ hg branches
default 0:cb9a9f314b8b
$ hg qpop
no patches applied
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
git patches
Nicolas Dumazet
tests: unify test-mq
r11894 $ cat >>$HGRCPATH <<EOF
> [diff]
> git = True
> EOF
$ hg init git
$ cd git
$ hg qinit
$ hg qnew -m'new file' new
$ echo foo > new
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Nicolas Dumazet
tests: unify test-mq
r11894 $ chmod +x new
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg add new
$ hg qrefresh
Matt Harbison
test-mq: conditionalize output instead of tests
r33342
Nicolas Dumazet
tests: unify test-mq
r11894 $ cat .hg/patches/new
new file
diff --git a/new b/new
Matt Harbison
test-mq: conditionalize output instead of tests
r33342 new file mode 100755 (execbit !)
new file mode 100644 (no-execbit !)
Nicolas Dumazet
tests: unify test-mq
r11894 --- /dev/null
+++ b/new
@@ -0,0 +1,1 @@
+foo
$ hg qnew -m'copy file' copy
$ hg cp new copy
$ hg qrefresh
$ cat .hg/patches/copy
copy file
diff --git a/new b/copy
copy from new
copy to copy
$ hg qpop
popping copy
now at: new
$ hg qpush
applying copy
now at: copy
$ hg qdiff
diff --git a/new b/copy
copy from new
copy to copy
$ cat >>$HGRCPATH <<EOF
> [diff]
> git = False
> EOF
$ hg qdiff --git
diff --git a/new b/copy
copy from new
copy to copy
$ cd ..
Pierre-Yves David
mq: gracefully handle malformated status file...
r13507 empty lines in status
$ hg init emptystatus
$ cd emptystatus
$ hg qinit
$ printf '\n\n' > .hg/patches/status
$ hg qser
$ cd ..
bad line in status (without ":")
$ hg init badstatus
$ cd badstatus
$ hg qinit
$ printf 'babar has no colon in this line\n' > .hg/patches/status
$ hg qser
malformated mq status line: ['babar has no colon in this line']
$ cd ..
Nicolas Dumazet
tests: unify test-mq
r11894
test file addition in slow path
$ hg init slow
$ cd slow
$ hg qinit
$ echo foo > foo
$ hg add foo
$ hg ci -m 'add foo'
$ hg qnew bar
$ echo bar > bar
$ hg add bar
$ hg mv foo baz
$ hg qrefresh --git
$ hg up -C 0
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo >> foo
$ hg ci -m 'change foo'
created new head
$ hg up -C 1
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
Nicolas Dumazet
tests: remove useless grep -v in test-mq.t
r12101 $ hg qrefresh --git
Nicolas Dumazet
tests: unify test-mq
r11894 $ cat .hg/patches/bar
diff --git a/bar b/bar
new file mode 100644
--- /dev/null
+++ b/bar
@@ -0,0 +1,1 @@
+bar
diff --git a/foo b/baz
rename from foo
rename to baz
$ hg log -v --template '{rev} {file_copies}\n' -r .
2 baz (foo)
$ hg qrefresh --git
$ cat .hg/patches/bar
diff --git a/bar b/bar
new file mode 100644
--- /dev/null
+++ b/bar
@@ -0,0 +1,1 @@
+bar
diff --git a/foo b/baz
rename from foo
rename to baz
$ hg log -v --template '{rev} {file_copies}\n' -r .
2 baz (foo)
$ hg qrefresh
$ grep 'diff --git' .hg/patches/bar
diff --git a/bar b/bar
diff --git a/foo b/baz
test file move chains in the slow path
$ hg up -C 1
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo >> foo
$ hg ci -m 'change foo again'
$ hg up -C 2
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg mv bar quux
$ hg mv baz bleh
Nicolas Dumazet
tests: remove useless grep -v in test-mq.t
r12101 $ hg qrefresh --git
Nicolas Dumazet
tests: unify test-mq
r11894 $ cat .hg/patches/bar
diff --git a/foo b/bleh
rename from foo
rename to bleh
diff --git a/quux b/quux
new file mode 100644
--- /dev/null
+++ b/quux
@@ -0,0 +1,1 @@
+bar
$ hg log -v --template '{rev} {file_copies}\n' -r .
3 bleh (foo)
$ hg mv quux fred
$ hg mv bleh barney
$ hg qrefresh --git
$ cat .hg/patches/bar
diff --git a/foo b/barney
rename from foo
rename to barney
diff --git a/fred b/fred
new file mode 100644
--- /dev/null
+++ b/fred
@@ -0,0 +1,1 @@
+bar
$ hg log -v --template '{rev} {file_copies}\n' -r .
3 barney (foo)
refresh omitting an added file
$ hg qnew baz
$ echo newfile > newfile
$ hg add newfile
$ hg qrefresh
$ hg st -A newfile
C newfile
$ hg qrefresh -X newfile
$ hg st -A newfile
A newfile
$ hg revert newfile
$ rm newfile
$ hg qpop
popping baz
now at: bar
Mads Kiilerich
mq: don't fail when removing a patch without patch file from series file
r18067
test qdel/qrm
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qdel baz
Mads Kiilerich
mq: don't fail when removing a patch without patch file from series file
r18067 $ echo p >> .hg/patches/series
$ hg qrm p
$ hg qser
bar
Nicolas Dumazet
tests: unify test-mq
r11894
create a git patch
$ echo a > alexander
$ hg add alexander
$ hg qnew -f --git addalexander
$ grep diff .hg/patches/addalexander
diff --git a/alexander b/alexander
create a git binary patch
$ cat > writebin.py <<EOF
> import sys
> path = sys.argv[1]
Pulkit Goyal
py3: make sure we write bytes to file...
r37544 > open(path, 'wb').write(b'BIN\x00ARY')
Nicolas Dumazet
tests: unify test-mq
r11894 > EOF
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" writebin.py bucephalus
Nicolas Dumazet
tests: unify test-mq
r11894
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" "$TESTDIR/md5sum.py" bucephalus
Nicolas Dumazet
tests: unify test-mq
r11894 8ba2a2f3e77b55d03051ff9c24ad65e7 bucephalus
$ hg add bucephalus
$ hg qnew -f --git addbucephalus
$ grep diff .hg/patches/addbucephalus
diff --git a/bucephalus b/bucephalus
check binary patches can be popped and pushed
$ hg qpop
popping addbucephalus
now at: addalexander
$ test -f bucephalus && echo % bucephalus should not be there
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qpush
applying addbucephalus
now at: addbucephalus
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ test -f bucephalus
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" "$TESTDIR/md5sum.py" bucephalus
Nicolas Dumazet
tests: unify test-mq
r11894 8ba2a2f3e77b55d03051ff9c24ad65e7 bucephalus
strip again
$ cd ..
$ hg init strip
$ cd strip
$ touch foo
$ hg add foo
$ hg ci -m 'add foo'
$ echo >> foo
$ hg ci -m 'change foo 1'
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 1 >> foo
$ hg ci -m 'change foo 2'
created new head
$ HGMERGE=true hg merge
merging foo
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m merge
$ hg log
changeset: 3:99615015637b
tag: tip
parent: 2:20cbbe65cff7
parent: 1:d2871fc282d4
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: merge
changeset: 2:20cbbe65cff7
parent: 0:53245c60e682
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: change foo 2
changeset: 1:d2871fc282d4
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: change foo 1
changeset: 0:53245c60e682
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo
Nicolas Dumazet
tests: use regular expressions instead of helpers
r11907 $ hg strip 1
Nicolas Dumazet
tests: unify test-mq
r11894 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 saved backup bundle to $TESTTMP/strip/.hg/strip-backup/*-backup.hg (glob)
Nicolas Dumazet
tests: unify test-mq
r11894 $ checkundo strip
$ hg log
changeset: 1:20cbbe65cff7
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: change foo 2
changeset: 0:53245c60e682
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo
$ cd ..
qclone
$ qlog()
> {
> echo 'main repo:'
> hg log --template ' rev {rev}: {desc}\n'
> echo 'patch repo:'
> hg -R .hg/patches log --template ' rev {rev}: {desc}\n'
> }
$ hg init qclonesource
$ cd qclonesource
$ echo foo > foo
$ hg add foo
$ hg ci -m 'add foo'
$ hg qinit
$ hg qnew patch1
$ echo bar >> foo
$ hg qrefresh -m 'change foo'
$ cd ..
repo with unversioned patch dir
$ hg qclone qclonesource failure
abort: versioned patch repository not found (see init --mq)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
$ cd qclonesource
$ hg qinit -c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding .hg/patches/patch1
Nicolas Dumazet
tests: unify test-mq
r11894 $ hg qci -m checkpoint
$ qlog
main repo:
rev 1: change foo
rev 0: add foo
patch repo:
rev 0: checkpoint
$ cd ..
repo with patches applied
$ hg qclone qclonesource qclonedest
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd qclonedest
$ qlog
main repo:
rev 0: add foo
patch repo:
rev 0: checkpoint
$ cd ..
repo with patches unapplied
$ cd qclonesource
$ hg qpop -a
popping patch1
patch queue now empty
$ qlog
main repo:
rev 0: add foo
patch repo:
rev 0: checkpoint
$ cd ..
$ hg qclone qclonesource qclonedest2
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd qclonedest2
$ qlog
main repo:
rev 0: add foo
patch repo:
rev 0: checkpoint
$ cd ..
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1033: test applying on an empty file
Nicolas Dumazet
tests: unify test-mq
r11894
$ hg init empty
$ cd empty
$ touch a
$ hg ci -Am addempty
adding a
$ echo a > a
$ hg qnew -f -e changea
$ hg qpop
popping changea
patch queue now empty
$ hg qpush
applying changea
now at: changea
$ cd ..
test qpush with --force, issue1087
$ hg init forcepush
$ cd forcepush
$ echo hello > hello.txt
$ echo bye > bye.txt
$ hg ci -Ama
adding bye.txt
adding hello.txt
$ hg qnew -d '0 0' empty
$ hg qpop
popping empty
patch queue now empty
$ echo world >> hello.txt
Idan Kamara
backout of d04ba50e104d: allow to qpop/push with a dirty working copy...
r14732 qpush should fail, local changes
Nicolas Dumazet
tests: unify test-mq
r11894
$ hg qpush
Idan Kamara
backout of d04ba50e104d: allow to qpop/push with a dirty working copy...
r14732 abort: local changes found
[255]
apply force, should not discard changes with empty patch
$ hg qpush -f
Nicolas Dumazet
tests: unify test-mq
r11894 applying empty
patch empty is empty
now at: empty
$ hg diff --config diff.nodates=True
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 diff -r d58265112590 hello.txt
Nicolas Dumazet
tests: unify test-mq
r11894 --- a/hello.txt
+++ b/hello.txt
@@ -1,1 +1,2 @@
hello
+world
$ hg qdiff --config diff.nodates=True
diff -r 9ecee4f634e3 hello.txt
--- a/hello.txt
+++ b/hello.txt
@@ -1,1 +1,2 @@
hello
+world
$ hg log -l1 -p
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 changeset: 1:d58265112590
Nicolas Dumazet
tests: unify test-mq
r11894 tag: empty
tag: qbase
tag: qtip
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: imported patch empty
$ hg qref -d '0 0'
$ hg qpop
popping empty
patch queue now empty
$ echo universe >> hello.txt
$ echo universe >> bye.txt
qpush should fail, local changes
$ hg qpush
Idan Kamara
mq: don't suggest to refresh when qpushing with no applied patches
r14191 abort: local changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-mq
r11894
apply force, should discard changes in hello, but not bye
Christian Delahousse
mq: let the user choose where .orig files are kept...
r26943 $ hg qpush -f --verbose --config 'ui.origbackuppath=.hg/origbackups'
Nicolas Dumazet
tests: unify test-mq
r11894 applying empty
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 creating directory: $TESTTMP/forcepush/.hg/origbackups
Martin von Zweigbergk
mq: always show relative path to .orig backup...
r41732 saving current version of hello.txt as .hg/origbackups/hello.txt
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 patching file hello.txt
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Patrick Mezard
mq: backup local changes in qpush --force...
r16634 hello.txt
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Nicolas Dumazet
tests: unify test-mq
r11894 now at: empty
$ hg st
M bye.txt
$ hg diff --config diff.nodates=True
diff -r ba252371dbc1 bye.txt
--- a/bye.txt
+++ b/bye.txt
@@ -1,1 +1,2 @@
bye
+universe
$ hg qdiff --config diff.nodates=True
diff -r 9ecee4f634e3 bye.txt
--- a/bye.txt
+++ b/bye.txt
@@ -1,1 +1,2 @@
bye
+universe
diff -r 9ecee4f634e3 hello.txt
--- a/hello.txt
+++ b/hello.txt
@@ -1,1 +1,3 @@
hello
+world
+universe
Christian Delahousse
mq: let the user choose where .orig files are kept...
r26943 test that the previous call to qpush with -f (--force) and --config actually put
the orig files out of the working copy
$ ls .hg/origbackups
Mark Thomas
scmutil: don't append .orig to backups in origbackuppath (BC)...
r34145 hello.txt
Nicolas Dumazet
tests: unify test-mq
r11894
test popping revisions not in working dir ancestry
$ hg qseries -v
0 A empty
$ hg up qparent
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg qpop
popping empty
patch queue now empty
$ cd ..
$ hg init deletion-order
$ cd deletion-order
$ touch a
$ hg ci -Aqm0
$ hg qnew rename-dir
$ hg rm a
$ hg qrefresh
$ mkdir a b
$ touch a/a b/b
$ hg add -q a b
$ hg qrefresh
test popping must remove files added in subdirectories first
$ hg qpop
popping rename-dir
patch queue now empty
$ cd ..
FUJIWARA Katsunori
icasefs: add test for case preservation on case insensitive filesystem...
r15728
test case preservation through patch pushing especially on case
insensitive filesystem
$ hg init casepreserve
$ cd casepreserve
$ hg qnew add-file1
$ echo a > TeXtFiLe.TxT
$ hg add TeXtFiLe.TxT
$ hg qrefresh
$ hg qnew add-file2
$ echo b > AnOtHeRFiLe.TxT
$ hg add AnOtHeRFiLe.TxT
$ hg qrefresh
$ hg qnew modify-file
$ echo c >> AnOtHeRFiLe.TxT
$ hg qrefresh
$ hg qapplied
add-file1
add-file2
modify-file
$ hg qpop -a
popping modify-file
popping add-file2
popping add-file1
patch queue now empty
this qpush causes problems below, if case preservation on case
insensitive filesystem is not enough:
(1) unexpected "adding ..." messages are shown
(2) patching fails in modification of (1) files
$ hg qpush -a
applying add-file1
applying add-file2
applying modify-file
now at: modify-file
Pierre-Yves David
mq: take mq.secret configuration into account when picking the default phase
r16028 Proper phase default with mq:
1. mq.secret=false
$ rm .hg/store/phaseroots
$ hg phase 'qparent::'
Pierre-Yves David
revset-_descendant: rework the whole sorting and combining logic...
r22860 -1: public
Pierre-Yves David
mq: take mq.secret configuration into account when picking the default phase
r16028 0: draft
1: draft
2: draft
$ echo '[mq]' >> $HGRCPATH
$ echo 'secret=true' >> $HGRCPATH
$ rm -f .hg/store/phaseroots
$ hg phase 'qparent::'
Pierre-Yves David
revset-_descendant: rework the whole sorting and combining logic...
r22860 -1: public
Pierre-Yves David
mq: take mq.secret configuration into account when picking the default phase
r16028 0: secret
1: secret
2: secret
Pierre-Yves David
qfinish: do not set secret changeset to draft if mq.secret=false...
r16029
Test that qfinish change phase when mq.secret=true
$ hg qfinish qbase
patch add-file1 finalized without changeset message
$ hg phase 'all()'
0: draft
1: secret
2: secret
Pierre-Yves David
qfinish: comply with the phases.new-commit option in secret mode (issue3335)...
r16290 Test that qfinish respect phases.new-commit setting
$ echo '[phases]' >> $HGRCPATH
$ echo 'new-commit=secret' >> $HGRCPATH
$ hg qfinish qbase
patch add-file2 finalized without changeset message
$ hg phase 'all()'
0: draft
1: secret
2: secret
(restore env for next test)
FUJIWARA Katsunori
tests: fix portability of sed usage in test-mq...
r16331 $ sed -e 's/new-commit=secret//' $HGRCPATH > $TESTTMP/sedtmp
$ cp $TESTTMP/sedtmp $HGRCPATH
Pierre-Yves David
qfinish: comply with the phases.new-commit option in secret mode (issue3335)...
r16290 $ hg qimport -r 1 --name add-file2
Pierre-Yves David
qfinish: do not set secret changeset to draft if mq.secret=false...
r16029 Test that qfinish preserve phase when mq.secret=false
FUJIWARA Katsunori
tests: fix portability of sed usage in test-mq...
r16331 $ sed -e 's/secret=true/secret=false/' $HGRCPATH > $TESTTMP/sedtmp
$ cp $TESTTMP/sedtmp $HGRCPATH
Pierre-Yves David
qfinish: do not set secret changeset to draft if mq.secret=false...
r16029 $ hg qfinish qbase
patch add-file2 finalized without changeset message
$ hg phase 'all()'
0: draft
1: secret
2: secret
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912
Pierre-Yves David
mq: comply with filtering when injecting fake tags (issue3812)...
r18662 Test that secret mq patch does not break hgweb
$ cat > hgweb.cgi <<HGWEB
> from mercurial import demandimport; demandimport.enable()
> from mercurial.hgweb import hgweb
> from mercurial.hgweb import wsgicgi
> import cgitb
> cgitb.enable()
Pulkit Goyal
py3: call hgweb.hgweb() with bytes values...
r39657 > app = hgweb(b'.', b'test')
Pierre-Yves David
mq: comply with filtering when injecting fake tags (issue3812)...
r18662 > wsgicgi.launch(app)
> HGWEB
$ . "$TESTDIR/cgienv"
Mads Kiilerich
tests: work around msys bash mangling of paths in test-mq.t
r18733 #if msys
$ PATH_INFO=//tags; export PATH_INFO
#else
Pierre-Yves David
mq: comply with filtering when injecting fake tags (issue3812)...
r18662 $ PATH_INFO=/tags; export PATH_INFO
Mads Kiilerich
tests: work around msys bash mangling of paths in test-mq.t
r18733 #endif
Pierre-Yves David
mq: comply with filtering when injecting fake tags (issue3812)...
r18662 $ QUERY_STRING='style=raw'
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" hgweb.cgi | grep '^tip'
Pierre-Yves David
mq: comply with filtering when injecting fake tags (issue3812)...
r18662 tip [0-9a-f]{40} (re)
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Pierre-Yves David
addset: fix `first` and `last` on sorted addset (issue4426)...
r23127
Mads Kiilerich
spelling: fixes from proofreading of spell checker issues
r23139 Test interaction with revset (issue4426)
Pierre-Yves David
addset: fix `first` and `last` on sorted addset (issue4426)...
r23127
$ hg init issue4426
$ cd issue4426
$ echo a > a
$ hg ci -Am a
adding a
$ echo a >> a
$ hg ci -m a
$ echo a >> a
$ hg ci -m a
$ hg qimport -r 0::
Pierre-Yves David
mq: do not call [0] on revset...
r23128 reimport things
$ hg qimport -r 1::
abort: revision 2 is already managed
[255]
Pierre-Yves David
addset: fix `first` and `last` on sorted addset (issue4426)...
r23127 $ cd ..