test-rebase-mq.t
343 lines
| 6.3 KiB
| text/troff
|
Tads3Lexer
/ tests / test-rebase-mq.t
Adrian Buehlmann
|
r12608 | $ cat >> $HGRCPATH <<EOF | ||
> [extensions] | ||||
> graphlog= | ||||
> 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
|
r15501 | merging f incomplete! (edit conflicts, then use 'hg resolve --mark') | ||
Steve Borho
|
r12896 | abort: unresolved conflicts (see hg resolve, then hg rebase --continue) | ||
Adrian Buehlmann
|
r12608 | [255] | ||
Fix the 1st conflict: | ||||
$ echo mq1r1 > f | ||||
$ hg resolve -m f | ||||
$ hg rebase -c | ||||
merging f | ||||
warning: conflicts during merge. | ||||
Matt Mackall
|
r15501 | merging f incomplete! (edit conflicts, then use 'hg resolve --mark') | ||
Steve Borho
|
r12896 | abort: unresolved conflicts (see hg resolve, then hg rebase --continue) | ||
Adrian Buehlmann
|
r12608 | [255] | ||
Fix the 2nd conflict: | ||||
$ echo mq1r1mq2 > f | ||||
$ hg resolve -m f | ||||
$ hg rebase -c | ||||
Mads Kiilerich
|
r12640 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) | ||
Adrian Buehlmann
|
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) | ||||
# 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) | ||||
# 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
|
r12640 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) | ||
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 | ||||
# Date ?????????? ? (glob) | ||||
# 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) | ||||
# 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
|
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 | ||||
$ hg qnew empty-important -m 'important commit message' | ||||
$ echo bar > bar | ||||
$ hg add bar | ||||
$ hg qnew bar | ||||
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 | ||||
Patrick Mezard
|
r16531 | @ 2: 'imported patch bar' tags: bar qtip tip | ||
Stefano Tortarolo
|
r13766 | | | ||
Mads Kiilerich
|
r15904 | o 1: 'important commit message' tags: empty-important qbase | ||
| | ||||
o 0: '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 | ||||
Mads Kiilerich
|
r15904 | @ 3: '[mq]: bar' tags: bar qtip tip | ||
Stefano Tortarolo
|
r13766 | | | ||
Mads Kiilerich
|
r15904 | | o 2: 'b' tags: | ||
| | | ||||
o | 1: 'important commit message' tags: empty-important qbase | ||||
Stefano Tortarolo
|
r13766 | |/ | ||
Mads Kiilerich
|
r15904 | o 0: '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 | ||||
$ 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 | ||||
@ 2:* '[mq]: bar' tags: bar qbase qtip tip (glob) | ||||
| | ||||
o 1:* 'b' tags: qparent (glob) | ||||
| | ||||
o 0:* 'a' tags: (glob) | ||||
Mads Kiilerich
|
r16912 | $ cd .. | ||