##// END OF EJS Templates
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" Before this patch, shell alias may be executed by abbreviated command name unexpectedly, even if abbreviated command name matches also against the command provided by extension. For example, "rebate" shell alias is executed by "hg reba", even if rebase extension (= "rebase" command) is enabled. In this case, "hg reba" should be aborted because of command name ambiguity. This patch makes "_checkshellalias()" invoke "cmdutil.findcmd()" always with "strict=True" (default value). If abbreviated command name matches against only one shell alias even after loading extensions, such shell alias will be executed via "_parse()". This patch doesn't remove "_checkshellalias()" invocation itself, because it may prevent shell alias from loading extensions uselessly.

File last commit:

r20117:aa9385f9 default
r20328:03d345da stable
Show More
test-rebase-mq.t
346 lines | 6.4 KiB | text/troff | Tads3Lexer
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> mq=
>
> [mq]
> plain=true
>
> [alias]
> tglog = log -G --template "{rev}: '{desc}' tags: {tags}\n"
> EOF
$ hg init a
$ cd a
$ hg qinit -c
$ echo c1 > f
$ hg add f
$ hg ci -m C1
$ echo r1 > f
$ hg ci -m R1
$ hg up -q 0
$ hg qnew f.patch
$ echo mq1 > f
$ hg qref -m P0
$ hg qnew f2.patch
$ echo mq2 > f
$ hg qref -m P1
$ hg tglog
@ 3: 'P1' tags: f2.patch qtip tip
|
o 2: 'P0' tags: f.patch qbase
|
| o 1: 'R1' tags:
|/
o 0: 'C1' tags: qparent
Rebase - try to rebase on an applied mq patch:
$ hg rebase -s 1 -d 3
abort: cannot rebase onto an applied mq patch
[255]
Rebase - same thing, but mq patch is default dest:
$ hg up -q 1
$ hg rebase
abort: cannot rebase onto an applied mq patch
[255]
$ hg up -q qtip
Rebase - generate a conflict:
$ hg rebase -s 2 -d 1
merging f
warning: conflicts during merge.
Matt Mackall
merge: give a special message for internal:merge failure (issue3105)
r15501 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
Augie Fackler
rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
r18933 unresolved conflicts (see hg resolve, then hg rebase --continue)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Fix the 1st conflict:
$ echo mq1r1 > f
$ hg resolve -m f
$ hg rebase -c
merging f
warning: conflicts during merge.
Matt Mackall
merge: give a special message for internal:merge failure (issue3105)
r15501 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
Augie Fackler
rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
r18933 unresolved conflicts (see hg resolve, then hg rebase --continue)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Fix the 2nd conflict:
$ echo mq1r1mq2 > f
$ hg resolve -m f
$ hg rebase -c
Mads Kiilerich
tests: remove redundant globs...
r12640 saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
@ 3: 'P1' tags: f2.patch qtip tip
|
o 2: 'P0' tags: f.patch qbase
|
o 1: 'R1' tags: qparent
|
o 0: 'C1' tags:
$ hg up -q qbase
$ cat f
mq1r1
$ cat .hg/patches/f.patch
# HG changeset patch
# User test
# Date ?????????? ? (glob)
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # * (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608 # Node ID ???????????????????????????????????????? (glob)
# Parent bac9ed9960d8992bcad75864a879fa76cadaf1b0
P0
diff -r bac9ed9960d8 -r ???????????? f (glob)
--- a/f Thu Jan 01 00:00:00 1970 +0000
+++ b/f ??? ??? ?? ??:??:?? ???? ????? (glob)
@@ -1,1 +1,1 @@
-r1
+mq1r1
Update to qtip:
$ hg up -q qtip
$ cat f
mq1r1mq2
$ cat .hg/patches/f2.patch
# HG changeset patch
# User test
# Date ?????????? ? (glob)
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # * (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608 # Node ID ???????????????????????????????????????? (glob)
# Parent ???????????????????????????????????????? (glob)
P1
diff -r ???????????? -r ???????????? f (glob)
--- a/f ??? ??? ?? ??:??:?? ???? ????? (glob)
+++ b/f ??? ??? ?? ??:??:?? ???? ????? (glob)
@@ -1,1 +1,1 @@
-mq1r1
+mq1r1mq2
Adding one git-style patch and one normal:
$ hg qpop -a
popping f2.patch
popping f.patch
patch queue now empty
$ rm -fr .hg/patches
$ hg qinit -c
$ hg up -q 0
$ hg qnew --git f_git.patch
$ echo mq1 > p
$ hg add p
$ hg qref --git -m 'P0 (git)'
$ hg qnew f.patch
$ echo mq2 > p
$ hg qref -m P1
$ hg qci -m 'save patch state'
$ hg qseries -s
f_git.patch: P0 (git)
f.patch: P1
$ hg -R .hg/patches manifest
.hgignore
f.patch
f_git.patch
series
$ cat .hg/patches/f_git.patch
P0 (git)
diff --git a/p b/p
new file mode 100644
--- /dev/null
+++ b/p
@@ -0,0 +1,1 @@
+mq1
$ cat .hg/patches/f.patch
P1
diff -r ???????????? p (glob)
--- a/p ??? ??? ?? ??:??:?? ???? ????? (glob)
+++ b/p ??? ??? ?? ??:??:?? ???? ????? (glob)
@@ -1,1 +1,1 @@
-mq1
+mq2
Rebase the applied mq patches:
$ hg rebase -s 2 -d 1
Mads Kiilerich
tests: remove redundant globs...
r12640 saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg qci -m 'save patch state'
$ hg qseries -s
f_git.patch: P0 (git)
f.patch: P1
$ hg -R .hg/patches manifest
.hgignore
f.patch
f_git.patch
series
$ cat .hg/patches/f_git.patch
# HG changeset patch
# User test
# Date ?????????? ? (glob)
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # * (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608 # Node ID ???????????????????????????????????????? (glob)
# Parent bac9ed9960d8992bcad75864a879fa76cadaf1b0
P0 (git)
diff --git a/p b/p
new file mode 100644
--- /dev/null
+++ b/p
@@ -0,0 +1,1 @@
+mq1
$ cat .hg/patches/f.patch
# HG changeset patch
# User test
# Date ?????????? ? (glob)
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # * (glob)
Adrian Buehlmann
tests: unify test-rebase*
r12608 # Node ID ???????????????????????????????????????? (glob)
# Parent ???????????????????????????????????????? (glob)
P1
diff -r ???????????? -r ???????????? p (glob)
--- a/p ??? ??? ?? ??:??:?? ???? ????? (glob)
+++ b/p ??? ??? ?? ??:??:?? ???? ????? (glob)
@@ -1,1 +1,1 @@
-mq1
+mq2
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
Rebase with guards
$ hg init foo
$ cd foo
$ echo a > a
$ hg ci -Am a
adding a
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 Create mq repo with guarded patches foo and bar and empty patch:
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
$ hg qinit
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 $ echo guarded > guarded
$ hg add guarded
$ hg qnew guarded
$ hg qnew empty-important -m 'important commit message'
$ echo bar > bar
$ hg add bar
$ hg qnew bar
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 $ echo foo > foo
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 $ hg add foo
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 $ hg qnew foo
$ hg qpop -a
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 popping foo
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 popping bar
popping empty-important
popping guarded
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 patch queue now empty
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 $ hg qguard guarded +guarded
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 $ hg qguard bar +baz
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 $ hg qguard foo +baz
$ hg qselect baz
number of unguarded, unapplied patches has changed from 1 to 3
$ hg qpush bar
applying empty-important
patch empty-important is empty
applying bar
now at: bar
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
$ hg qguard -l
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 guarded: +guarded
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 empty-important: unguarded
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 bar: +baz
foo: +baz
$ hg tglog
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 @ 2: 'imported patch bar' tags: bar qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 o 1: 'important commit message' tags: empty-important qbase
|
o 0: 'a' tags: qparent
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
Create new head to rebase bar onto:
$ hg up -C 0
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 $ echo b > b
$ hg add b
$ hg ci -m b
created new head
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 $ hg up -C 2
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 $ echo a >> a
$ hg qref
$ hg tglog
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 @ 3: '[mq]: bar' tags: bar qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 | o 2: 'b' tags:
| |
o | 1: 'important commit message' tags: empty-important qbase
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |/
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 o 0: 'a' tags: qparent
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 Rebase bar (make sure series order is preserved and empty-important also is
removed from the series):
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 $ hg qseries
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 guarded
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 empty-important
bar
foo
$ [ -f .hg/patches/empty-important ]
$ hg -q rebase -d 2
$ hg qseries
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 guarded
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 bar
foo
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 $ [ -f .hg/patches/empty-important ]
[1]
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
$ hg qguard -l
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 guarded: +guarded
Idan Kamara
rebase: preserve mq series order after rebasing (issue2849)
r14599 bar: +baz
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 foo: +baz
$ hg tglog
@ 2:* '[mq]: bar' tags: bar qbase qtip tip (glob)
|
o 1:* 'b' tags: qparent (glob)
|
o 0:* 'a' tags: (glob)
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..