##// END OF EJS Templates
rhg: add resolve_file_args to path_utils.rs...
rhg: add resolve_file_args to path_utils.rs Extracted logic for resolving `FILE ...` arguments from cat.rs into a new function in path_utils.rs. I plan to use this for rhg annotate. I tried to reuse hg::utils::files::canonical_path instead, but that didn't work. For example it reports a InsideDotHg error for any path containing "..".

File last commit:

r47377:9989a276 default
r53438:f33f37ac tip 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
Martin von Zweigbergk
errors: use more specific errors in rebase extension...
r47377 [20]
Adrian Buehlmann
tests: unify test-rebase*
r12608
Rebase - same thing, but mq patch is default dest:
$ hg up -q 1
$ hg rebase
abort: cannot rebase onto an applied mq patch
Martin von Zweigbergk
errors: use more specific errors in rebase extension...
r47377 [20]
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ hg up -q qtip
Rebase - generate a conflict:
$ hg rebase -s 2 -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:3504f44bffc0 f.patch qbase "P0"
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')
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
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
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:3504f44bffc0 f.patch qbase "P0"
rebasing 3:929394423cd3 f2.patch qtip tip "P1"
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')
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
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
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 already rebased 2:3504f44bffc0 f.patch qbase "P0" as ebe9914c0d1c
rebasing 3:929394423cd3 f2.patch qtip "P1"
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
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:0c587ffcb480 f_git.patch qbase "P0 (git)"
rebasing 3:c7f18665e4bc f.patch qtip tip "P1"
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: change and standarize template for rebase's one-line summary...
r46356 note: not rebasing 1:0aaf4c3af7eb empty-important qbase "important commit message", 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 ..