##// END OF EJS Templates
namespaces: record and expose whether namespace is built-in...
namespaces: record and expose whether namespace is built-in Currently, the templating layer tends to treat each namespace as a one-off, with explicit usage of {bookmarks}, {tags}, {branch}, etc instead of using {namespaces}. It would be really useful if we could iterate over namespaces and operate on them generically. However, some consumers may wish to differentiate namespaces by whether they are built-in to core Mercurial or provided by extensions. Expected use cases include ignoring non-built-in namespaces or emitting a generic label for non-built-in namespaces. This commit introduces an attribute on namespace instances that says whether the namespace is "built-in" and then exposes this to the templating layer. As part of this, we implement a reusable extension for defining custom names on each changeset for testing. A second consumer will be introduced in a subsequent commit.

File last commit:

r32313:a580b2d6 default
r33048:46fa4660 default
Show More
test-rebase-interruptions.t
305 lines | 5.1 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-interruptions.t
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
Pierre-Yves David
phases: prevent rebase to rebase immutable changeset.
r15742 > [phases]
> publish=False
>
Adrian Buehlmann
tests: unify test-rebase*
r12608 > [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 > tglogp = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
Adrian Buehlmann
tests: unify test-rebase*
r12608 > EOF
$ hg init a
$ cd a
$ echo A > A
$ hg ci -Am A
adding A
$ echo B > B
$ hg ci -Am B
adding B
$ echo C >> A
$ hg ci -m C
$ hg up -q -C 0
$ echo D >> A
$ hg ci -m D
created new head
$ echo E > E
$ hg ci -Am E
adding E
$ cd ..
Changes during an interruption - continue:
$ hg clone -q -u . a a1
$ cd a1
$ hg tglog
@ 4: 'E'
|
o 3: 'D'
|
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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
Force a commit on C during the interruption:
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 2 --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ echo 'Extra' > Extra
$ hg add Extra
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 Force this commit onto secret phase
$ hg phase --force --secret 6
$ hg tglogp
@ 6:secret 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 5:draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 4:draft 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 3:draft 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o | 2:draft 'C'
| |
o | 1:draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o 0:draft 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Resume the rebasing:
$ hg rebase --continue
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 already rebased 1:27547f69f254 "B" as 45396c49d53b
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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
Solve the conflict and go on:
$ echo 'conflict solved' > A
$ rm A.orig
$ hg resolve -m A
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 --continue
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 already rebased 1:27547f69f254 "B" as 45396c49d53b
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 warning: new changesets detected on source branch, not stripping
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg tglogp
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 7:draft 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 6:secret 'Extra'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o | 5:draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ | 4:draft 'E'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o | 3:draft 'D'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 2:draft 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 | o 1:draft 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 o 0:draft 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ cd ..
Changes during an interruption - abort:
$ hg clone -q -u . a a2
$ cd a2
$ hg tglog
@ 4: 'E'
|
o 3: 'D'
|
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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
Force a commit on B' during the interruption:
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 5 --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ echo 'Extra' > Extra
$ hg add Extra
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
@ 6: 'Extra'
|
o 5: 'B'
|
o 4: 'E'
|
o 3: 'D'
|
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Abort the rebasing:
$ hg rebase --abort
Martin von Zweigbergk
rebase: rename "target" to "destination" in messages...
r32249 warning: new changesets detected on destination branch, can't strip
Matt Mackall
rebase: allow aborting when descendants detected...
r19518 rebase aborted
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
@ 6: 'Extra'
|
o 5: 'B'
|
o 4: 'E'
|
o 3: 'D'
|
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
$ cd ..
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 Changes during an interruption - abort (again):
$ hg clone -q -u . a a3
$ cd a3
$ hg tglogp
@ 4:draft 'E'
|
o 3:draft 'D'
|
| o 2:draft 'C'
| |
| o 1:draft 'B'
|/
o 0:draft 'A'
Rebasing B onto E:
$ hg rebase -s 1 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:27547f69f254 "B"
rebasing 2:965c486023db "C"
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 merging A
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging A! (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]
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
Change phase on B and B'
Matt Mackall
rebase: add checkunfinished support (issue3955)
r19478 $ hg up -q -C 5 --config 'extensions.rebase=!'
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917 $ hg phase --public 1
$ hg phase --public 5
$ hg phase --secret -f 2
$ hg tglogp
@ 5:public 'B'
|
o 4:public 'E'
|
o 3:public 'D'
|
| o 2:secret 'C'
| |
| o 1:public 'B'
|/
o 0:public 'A'
Abort the rebasing:
$ hg rebase --abort
Jordi Gutiérrez Hermoso
phases: rewrite "immutable changeset" to "public changeset"...
r25411 warning: can't clean up public changesets 45396c49d53b
Matt Mackall
rebase: continue abort without strip for immutable csets (issue3997)...
r19517 rebase aborted
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
rebase: fix phases movement...
r15917
$ hg tglogp
@ 5:public 'B'
|
o 4:public 'E'
|
o 3:public 'D'
|
| o 2:secret 'C'
| |
| o 1:public 'B'
|/
o 0:public 'A'
$ cd ..
Jeremy Fitzhardinge
rebase: make sure merge state is cleaned up for no-op rebases (issue5494)...
r32313
Make sure merge state is cleaned up after a no-op rebase merge (issue5494)
$ hg init repo
$ cd repo
$ echo a > a
$ hg commit -qAm base
$ echo b >> a
$ hg commit -qm b
$ hg up '.^'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c >> a
$ hg commit -qm c
$ hg rebase -s 1 -d 2 --noninteractive
rebasing 1:fdaca8533b86 "b"
merging a
warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
$ echo a > a
$ echo c >> a
$ hg resolve --mark a
(no more unresolved files)
continue: hg rebase --continue
$ hg rebase --continue
rebasing 1:fdaca8533b86 "b"
note: rebase of 1:fdaca8533b86 created no changes to commit
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fdaca8533b86-7fd70513-backup.hg (glob)
$ hg resolve --list
$ test -f .hg/merge
[1]