test-rebase-mq.t
360 lines
| 7.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-rebase-mq.t
Adrian Buehlmann
|
r12608 | $ cat >> $HGRCPATH <<EOF | ||
> [extensions] | ||||
> rebase= | ||||
> mq= | ||||
> | ||||
> [mq] | ||||
> plain=true | ||||
> | ||||
> [alias] | ||||
Phil Cohen
|
r35386 | > tglog = log -G --template "{rev}: {node|short} '{desc}' tags: {tags}\n" | ||
Adrian Buehlmann
|
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
|
r23515 | $ hg qnew f.patch -d '1 0' | ||
Adrian Buehlmann
|
r12608 | $ echo mq1 > f | ||
$ hg qref -m P0 | ||||
$ hg qnew f2.patch | ||||
$ echo mq2 > f | ||||
Mads Kiilerich
|
r23515 | $ hg qref -m P1 -d '2 0' | ||
Adrian Buehlmann
|
r12608 | |||
$ hg tglog | ||||
Phil Cohen
|
r35386 | @ 3: 929394423cd3 'P1' tags: f2.patch qtip tip | ||
Adrian Buehlmann
|
r12608 | | | ||
Phil Cohen
|
r35386 | o 2: 3504f44bffc0 'P0' tags: f.patch qbase | ||
Adrian Buehlmann
|
r12608 | | | ||
Phil Cohen
|
r35386 | | o 1: bac9ed9960d8 'R1' tags: | ||
Adrian Buehlmann
|
r12608 | |/ | ||
Phil Cohen
|
r35386 | o 0: 36f36ddbca61 'C1' tags: qparent | ||
Adrian Buehlmann
|
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
|
r23517 | rebasing 2:3504f44bffc0 "P0" (f.patch qbase) | ||
Adrian Buehlmann
|
r12608 | merging f | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') | ||
Augie Fackler
|
r18933 | unresolved conflicts (see hg resolve, then hg rebase --continue) | ||
Augie Fackler
|
r18935 | [1] | ||
Adrian Buehlmann
|
r12608 | |||
Fix the 1st conflict: | ||||
$ echo mq1r1 > f | ||||
$ hg resolve -m f | ||||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27626 | continue: hg rebase --continue | ||
Adrian Buehlmann
|
r12608 | $ hg rebase -c | ||
Mads Kiilerich
|
r23517 | rebasing 2:3504f44bffc0 "P0" (f.patch qbase) | ||
rebasing 3:929394423cd3 "P1" (f2.patch qtip tip) | ||||
Adrian Buehlmann
|
r12608 | merging f | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging f! (edit, then use 'hg resolve --mark') | ||
Augie Fackler
|
r18933 | unresolved conflicts (see hg resolve, then hg rebase --continue) | ||
Augie Fackler
|
r18935 | [1] | ||
Adrian Buehlmann
|
r12608 | |||
Fix the 2nd conflict: | ||||
$ echo mq1r1mq2 > f | ||||
$ hg resolve -m f | ||||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27626 | continue: hg rebase --continue | ||
Adrian Buehlmann
|
r12608 | $ hg rebase -c | ||
Mads Kiilerich
|
r23517 | already rebased 2:3504f44bffc0 "P0" (f.patch qbase) as ebe9914c0d1c | ||
rebasing 3:929394423cd3 "P1" (f2.patch qtip) | ||||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/3504f44bffc0-30595b40-rebase.hg | ||
Adrian Buehlmann
|
r12608 | |||
$ hg tglog | ||||
Phil Cohen
|
r35386 | @ 3: 462012cf340c 'P1' tags: f2.patch qtip tip | ||
Adrian Buehlmann
|
r12608 | | | ||
Phil Cohen
|
r35386 | o 2: ebe9914c0d1c 'P0' tags: f.patch qbase | ||
Adrian Buehlmann
|
r12608 | | | ||
Phil Cohen
|
r35386 | o 1: bac9ed9960d8 'R1' tags: qparent | ||
Adrian Buehlmann
|
r12608 | | | ||
Phil Cohen
|
r35386 | o 0: 36f36ddbca61 'C1' tags: | ||
Adrian Buehlmann
|
r12608 | |||
$ hg up -q qbase | ||||
$ cat f | ||||
mq1r1 | ||||
$ cat .hg/patches/f.patch | ||||
# HG changeset patch | ||||
# User test | ||||
Mads Kiilerich
|
r23515 | # Date 1 0 | ||
# Thu Jan 01 00:00:01 1970 +0000 | ||||
# Node ID ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab | ||||
Adrian Buehlmann
|
r12608 | # Parent bac9ed9960d8992bcad75864a879fa76cadaf1b0 | ||
P0 | ||||
Mads Kiilerich
|
r23515 | diff -r bac9ed9960d8 -r ebe9914c0d1c f | ||
Adrian Buehlmann
|
r12608 | --- a/f Thu Jan 01 00:00:00 1970 +0000 | ||
Mads Kiilerich
|
r23515 | +++ b/f Thu Jan 01 00:00:01 1970 +0000 | ||
Adrian Buehlmann
|
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
|
r23515 | # Date 2 0 | ||
# Thu Jan 01 00:00:02 1970 +0000 | ||||
# Node ID 462012cf340c97d44d62377c985a423f6bb82f07 | ||||
# Parent ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab | ||||
Adrian Buehlmann
|
r12608 | P1 | ||
Mads Kiilerich
|
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
|
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
|
r23515 | $ hg qnew --git f_git.patch -d '3 0' | ||
Adrian Buehlmann
|
r12608 | $ echo mq1 > p | ||
$ hg add p | ||||
$ hg qref --git -m 'P0 (git)' | ||||
Mads Kiilerich
|
r23515 | $ hg qnew f.patch -d '4 0' | ||
Adrian Buehlmann
|
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
|
r23515 | Date: 3 0 | ||
Adrian Buehlmann
|
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
|
r23515 | Date: 4 0 | ||
Adrian Buehlmann
|
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
|
r23517 | rebasing 2:0c587ffcb480 "P0 (git)" (f_git.patch qbase) | ||
rebasing 3:c7f18665e4bc "P1" (f.patch qtip tip) | ||||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/0c587ffcb480-0ea5695f-rebase.hg | ||
Adrian Buehlmann
|
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
|
r23515 | # Date 3 0 | ||
# Thu Jan 01 00:00:03 1970 +0000 | ||||
# Node ID 12d9f6a3bbe560dee50c7c454d434add7fb8e837 | ||||
Adrian Buehlmann
|
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
|
r23515 | # Date 4 0 | ||
# Thu Jan 01 00:00:04 1970 +0000 | ||||
# Node ID c77a2661c64c60d82f63c4f7aefd95b3a948a557 | ||||
# Parent 12d9f6a3bbe560dee50c7c454d434add7fb8e837 | ||||
Adrian Buehlmann
|
r12608 | P1 | ||
Mads Kiilerich
|
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
|
r12608 | @@ -1,1 +1,1 @@ | ||
-mq1 | ||||
+mq2 | ||||
Mads Kiilerich
|
r16912 | $ cd .. | ||
Stefano Tortarolo
|
r13766 | |||
Rebase with guards | ||||
$ hg init foo | ||||
$ cd foo | ||||
$ echo a > a | ||||
$ hg ci -Am a | ||||
adding a | ||||
Mads Kiilerich
|
r15904 | Create mq repo with guarded patches foo and bar and empty patch: | ||
Stefano Tortarolo
|
r13766 | |||
$ hg qinit | ||||
Patrick Mezard
|
r16531 | $ echo guarded > guarded | ||
$ hg add guarded | ||||
$ hg qnew guarded | ||||
Mads Kiilerich
|
r23515 | $ hg qnew empty-important -m 'important commit message' -d '1 0' | ||
Patrick Mezard
|
r16531 | $ echo bar > bar | ||
$ hg add bar | ||||
Mads Kiilerich
|
r23515 | $ hg qnew bar -d '2 0' | ||
Stefano Tortarolo
|
r13766 | $ echo foo > foo | ||
Idan Kamara
|
r14599 | $ hg add foo | ||
Patrick Mezard
|
r16531 | $ hg qnew foo | ||
$ hg qpop -a | ||||
Stefano Tortarolo
|
r13766 | popping foo | ||
Patrick Mezard
|
r16531 | popping bar | ||
popping empty-important | ||||
popping guarded | ||||
Stefano Tortarolo
|
r13766 | patch queue now empty | ||
Patrick Mezard
|
r16531 | $ hg qguard guarded +guarded | ||
Stefano Tortarolo
|
r13766 | $ hg qguard bar +baz | ||
Patrick Mezard
|
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
|
r13766 | |||
$ hg qguard -l | ||||
Patrick Mezard
|
r16531 | guarded: +guarded | ||
Mads Kiilerich
|
r15904 | empty-important: unguarded | ||
Stefano Tortarolo
|
r13766 | bar: +baz | ||
foo: +baz | ||||
$ hg tglog | ||||
Phil Cohen
|
r35386 | @ 2: 4f44b861d38c 'imported patch bar' tags: bar qtip tip | ||
Stefano Tortarolo
|
r13766 | | | ||
Phil Cohen
|
r35386 | o 1: 0aaf4c3af7eb 'important commit message' tags: empty-important qbase | ||
Mads Kiilerich
|
r15904 | | | ||
Phil Cohen
|
r35386 | o 0: cb9a9f314b8b 'a' tags: qparent | ||
Stefano Tortarolo
|
r13766 | |||
Create new head to rebase bar onto: | ||||
$ hg up -C 0 | ||||
Idan Kamara
|
r14599 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
Stefano Tortarolo
|
r13766 | $ echo b > b | ||
$ hg add b | ||||
$ hg ci -m b | ||||
created new head | ||||
Mads Kiilerich
|
r15904 | $ hg up -C 2 | ||
Idan Kamara
|
r14599 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
Stefano Tortarolo
|
r13766 | $ echo a >> a | ||
$ hg qref | ||||
$ hg tglog | ||||
Phil Cohen
|
r35386 | @ 3: d526d4536ed6 '[mq]: bar' tags: bar qtip tip | ||
Stefano Tortarolo
|
r13766 | | | ||
Phil Cohen
|
r35386 | | o 2: d2ae7f538514 'b' tags: | ||
Mads Kiilerich
|
r15904 | | | | ||
Phil Cohen
|
r35386 | o | 1: 0aaf4c3af7eb 'important commit message' tags: empty-important qbase | ||
Stefano Tortarolo
|
r13766 | |/ | ||
Phil Cohen
|
r35386 | o 0: cb9a9f314b8b 'a' tags: qparent | ||
Stefano Tortarolo
|
r13766 | |||
Mads Kiilerich
|
r15904 | Rebase bar (make sure series order is preserved and empty-important also is | ||
removed from the series): | ||||
Stefano Tortarolo
|
r13766 | |||
Idan Kamara
|
r14599 | $ hg qseries | ||
Patrick Mezard
|
r16531 | guarded | ||
Mads Kiilerich
|
r15904 | empty-important | ||
bar | ||||
foo | ||||
$ [ -f .hg/patches/empty-important ] | ||||
$ hg -q rebase -d 2 | ||||
Martin von Zweigbergk
|
r40900 | note: not rebasing 1:0aaf4c3af7eb "important commit message" (empty-important qbase), its destination already has all its changes | ||
Mads Kiilerich
|
r15904 | $ hg qseries | ||
Patrick Mezard
|
r16531 | guarded | ||
Idan Kamara
|
r14599 | bar | ||
foo | ||||
Mads Kiilerich
|
r15904 | $ [ -f .hg/patches/empty-important ] | ||
[1] | ||||
Stefano Tortarolo
|
r13766 | |||
$ hg qguard -l | ||||
Patrick Mezard
|
r16531 | guarded: +guarded | ||
Idan Kamara
|
r14599 | bar: +baz | ||
Stefano Tortarolo
|
r13766 | foo: +baz | ||
$ hg tglog | ||||
Phil Cohen
|
r35386 | @ 2: 477d948bb2af '[mq]: bar' tags: bar qbase qtip tip | ||
Stefano Tortarolo
|
r13766 | | | ||
Phil Cohen
|
r35386 | o 1: d2ae7f538514 'b' tags: qparent | ||
Stefano Tortarolo
|
r13766 | | | ||
Phil Cohen
|
r35386 | o 0: cb9a9f314b8b 'a' tags: | ||
Stefano Tortarolo
|
r13766 | |||
Mads Kiilerich
|
r16912 | $ cd .. | ||