##// END OF EJS Templates
repair: add experimental option to write bundle2 files...
repair: add experimental option to write bundle2 files This adds an experimental option 'strip-bundle2-version' which causes backup bundles to use bundle2 formatting. Especially for generaldelta repositories, this should provide significant performance gains for any operation that needs to write a backup.

File last commit:

r23835:aa4a1672 default
r23898:b21c2e0e default
Show More
test-rebase-mq.t
360 lines | 6.9 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
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
@ 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
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
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
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
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
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
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
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)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a/.hg/strip-backup/3504f44bffc0-30595b40-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
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)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a/.hg/strip-backup/0c587ffcb480-0ea5695f-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
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
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
Mads Kiilerich
rebase: show warning when rebase creates no changes to commit...
r23518 note: rebase of 1:0aaf4c3af7eb created no changes to commit
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
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 @ 2: '[mq]: bar' tags: bar qbase qtip tip
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 o 1: 'b' tags: qparent
Stefano Tortarolo
rebase: restore mq guards after rebasing (issue2107)...
r13766 |
Mads Kiilerich
tests: stabilise mq rebase tests...
r23515 o 0: '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 ..