##// 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:

r32272:78496ac3 default
r33048:46fa4660 default
Show More
test-rebase-partial.t
95 lines | 1.6 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-partial.t
Tests rebasing with part of the rebase set already in the
destination (issue5422)
$ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> drawdag=$TESTDIR/drawdag.py
>
> [experimental]
> evolution=createmarkers,allowunstable
>
> [alias]
> tglog = log -G --template "{rev}: {desc}"
> EOF
$ rebasewithdag() {
> N=`$PYTHON -c "print($N+1)"`
> hg init repo$N && cd repo$N
> hg debugdrawdag
> hg rebase "$@" > _rebasetmp
> r=$?
> grep -v 'saved backup bundle' _rebasetmp
> [ $r -eq 0 ] && hg tglog
> cd ..
> return $r
> }
Rebase two commits, of which one is already in the right place
$ rebasewithdag -r C+D -d B <<EOF
> C
> |
> B D
> |/
> A
> EOF
rebasing 2:b18e25de2cf5 "D" (D)
already rebased 3:26805aba1e60 "C" (C tip)
o 4: D
|
| o 3: C
|/
| x 2: D
| |
o | 1: B
|/
o 0: A
Can collapse commits even if one is already in the right place
$ rebasewithdag --collapse -r C+D -d B <<EOF
> C
> |
> B D
> |/
> A
> EOF
rebasing 2:b18e25de2cf5 "D" (D)
rebasing 3:26805aba1e60 "C" (C tip)
o 4: Collapsed revision
| * D
| * C
| x 3: C
|/
| x 2: D
| |
o | 1: B
|/
o 0: A
Rebase with "holes". The commits after the hole should end up on the parent of
the hole (B below), not on top of the destination (A).
$ rebasewithdag -r B+D -d A <<EOF
> D
> |
> C
> |
> B
> |
> A
> EOF
already rebased 1:112478962961 "B" (B)
not rebasing ignored 2:26805aba1e60 "C" (C)
rebasing 3:f585351a92f8 "D" (D tip)
o 4: D
|
| x 3: D
| |
| o 2: C
|/
o 1: B
|
o 0: A