##// END OF EJS Templates
rebase: clarify that commits that become empty are skipped...
rebase: clarify that commits that become empty are skipped Our message just said that it created no changes, but we didn't explicitly say that that meant that the the commit was not rebased. It also wasn't clear why it created no changes, so this patch also clarifies that that was because the changes were already in the destination. Differential Revision: https://phab.mercurial-scm.org/D5395

File last commit:

r40900:4edd427f default
r40900:4edd427f default
Show More
test-rebase-mq.t
360 lines | 7.2 KiB | text/troff | Tads3Lexer
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> mq=
>
> [mq]
> plain=true
>
> [alias]
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 > tglog = log -G --template "{rev}: {node|short} '{desc}' tags: {tags}\n"
Adrian Buehlmann
tests: unify test-rebase*
r12608 > 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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qnew f.patch -d '1 0'
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ echo mq1 > f
$ hg qref -m P0
$ hg qnew f2.patch
$ echo mq2 > f
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qref -m P1 -d '2 0'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 3: 929394423cd3 'P1' tags: f2.patch qtip tip
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: 3504f44bffc0 'P0' tags: f.patch qbase
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: bac9ed9960d8 'R1' tags:
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 36f36ddbca61 'C1' tags: qparent
Adrian Buehlmann
tests: unify test-rebase*
r12608
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
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 2:3504f44bffc0 "P0" (f.patch qbase)
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, 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
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
timeless
rebase: hook afterresolvedstates
r27626 continue: hg rebase --continue
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ hg rebase -c
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 2:3504f44bffc0 "P0" (f.patch qbase)
rebasing 3:929394423cd3 "P1" (f2.patch qtip tip)
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging f
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging f! (edit, 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
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
timeless
rebase: hook afterresolvedstates
r27626 continue: hg rebase --continue
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ hg rebase -c
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 already rebased 2:3504f44bffc0 "P0" (f.patch qbase) as ebe9914c0d1c
rebasing 3:929394423cd3 "P1" (f2.patch qtip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a/.hg/strip-backup/3504f44bffc0-30595b40-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 3: 462012cf340c 'P1' tags: f2.patch qtip tip
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: ebe9914c0d1c 'P0' tags: f.patch qbase
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: bac9ed9960d8 'R1' tags: qparent
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 36f36ddbca61 'C1' tags:
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg up -q qbase
$ cat f
mq1r1
$ cat .hg/patches/f.patch
# HG changeset patch
# User test
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 # Date 1 0
# Thu Jan 01 00:00:01 1970 +0000
# Node ID ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab
Adrian Buehlmann
tests: unify test-rebase*
r12608 # Parent bac9ed9960d8992bcad75864a879fa76cadaf1b0
P0
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 diff -r bac9ed9960d8 -r ebe9914c0d1c f
Adrian Buehlmann
tests: unify test-rebase*
r12608 --- a/f Thu Jan 01 00:00:00 1970 +0000
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 +++ b/f Thu Jan 01 00:00:01 1970 +0000
Adrian Buehlmann
tests: unify test-rebase*
r12608 @@ -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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 # Date 2 0
# Thu Jan 01 00:00:02 1970 +0000
# Node ID 462012cf340c97d44d62377c985a423f6bb82f07
# Parent ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab
Adrian Buehlmann
tests: unify test-rebase*
r12608 P1
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 diff -r ebe9914c0d1c -r 462012cf340c f
--- a/f Thu Jan 01 00:00:01 1970 +0000
+++ b/f Thu Jan 01 00:00:02 1970 +0000
Adrian Buehlmann
tests: unify test-rebase*
r12608 @@ -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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qnew --git f_git.patch -d '3 0'
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ echo mq1 > p
$ hg add p
$ hg qref --git -m 'P0 (git)'
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qnew f.patch -d '4 0'
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ 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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 Date: 3 0
Adrian Buehlmann
tests: unify test-rebase*
r12608 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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 Date: 4 0
Adrian Buehlmann
tests: unify test-rebase*
r12608 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
rebase: show more useful status information while rebasing...
r23517 rebasing 2:0c587ffcb480 "P0 (git)" (f_git.patch qbase)
rebasing 3:c7f18665e4bc "P1" (f.patch qtip tip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a/.hg/strip-backup/0c587ffcb480-0ea5695f-rebase.hg
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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 # Date 3 0
# Thu Jan 01 00:00:03 1970 +0000
# Node ID 12d9f6a3bbe560dee50c7c454d434add7fb8e837
Adrian Buehlmann
tests: unify test-rebase*
r12608 # 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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 # Date 4 0
# Thu Jan 01 00:00:04 1970 +0000
# Node ID c77a2661c64c60d82f63c4f7aefd95b3a948a557
# Parent 12d9f6a3bbe560dee50c7c454d434add7fb8e837
Adrian Buehlmann
tests: unify test-rebase*
r12608 P1
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 diff -r 12d9f6a3bbe5 -r c77a2661c64c p
--- a/p Thu Jan 01 00:00:03 1970 +0000
+++ b/p Thu Jan 01 00:00:04 1970 +0000
Adrian Buehlmann
tests: unify test-rebase*
r12608 @@ -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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qnew empty-important -m 'important commit message' -d '1 0'
Patrick Mezard
rebase: preserve mq series order, guarded patches (issue2849)...
r16531 $ echo bar > bar
$ hg add bar
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 $ hg qnew bar -d '2 0'
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
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 2: 4f44b861d38c 'imported patch bar' tags: bar qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: 0aaf4c3af7eb 'important commit message' tags: empty-important qbase
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: cb9a9f314b8b '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
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 3: d526d4536ed6 '[mq]: bar' tags: bar qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: d2ae7f538514 'b' tags:
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: 0aaf4c3af7eb 'important commit message' tags: empty-important qbase
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: cb9a9f314b8b '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
Martin von Zweigbergk
rebase: clarify that commits that become empty are skipped...
r40900 note: not rebasing 1:0aaf4c3af7eb "important commit message" (empty-important qbase), its destination already has all its changes
Mads Kiilerich
rebase: write series file without removed mq patches...
r15904 $ 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
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 2: 477d948bb2af '[mq]: bar' tags: bar qbase qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: d2ae7f538514 'b' tags: qparent
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: cb9a9f314b8b 'a' tags:
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..