##// END OF EJS Templates
share: make it possible to control the working copy format variant...
share: make it possible to control the working copy format variant A share will use the same format as its source for the store, but there are no reason to not lets it control the working copy variant at creation time. So we make it so. Differential Revision: https://phab.mercurial-scm.org/D11892

File last commit:

r46507:fc4fb2f1 default
r49297:bf2738e0 default
Show More
test-template-graph.t
440 lines | 6.5 KiB | text/troff | Tads3Lexer
/ tests / test-template-graph.t
Test graph-related template functions
=====================================
$ cat <<'EOF' >> $HGRCPATH
> [extensions]
> drawdag = $RUNTESTDIR/drawdag.py
> EOF
$ hg init a
$ cd a
$ hg debugdrawdag <<'EOF'
> l
> / \
> | k
> | |\
> | | j
> | | |
> i | |
> |\ | |
> h | | |
> | | | |
> | g | |
> | | | |
> f | | |
> | |/ /
> | e |
> | |/
> | d
> |/|
> c |
> | |
> b |
> |
> a
> EOF
$ hg log -Gq -T'{rev} {tags}\n'
o 11 l tip
|\
| o 10 i
| |\
o \ \ 9 k
|\ \ \
+-----o 8 g
| | |
| o | 7 j
| | |
| | o 6 h
| | |
o | | 5 e
|/ /
| o 4 f
| |
o | 3 d
|\|
| o 2 c
| |
| o 1 b
|
o 0 a
$ cd ..
Create repository containing merges of p1 > p2:
$ hg init named-branch-order
$ cd named-branch-order
$ hg branch -q b0
$ hg ci -m 0
$ hg up -q null
$ hg branch -q b1
$ hg ci -m 1
$ hg up -q null
$ hg branch -q b2
$ hg ci -m 2
$ hg merge -q 1
$ hg ci -m 3
$ hg ci -m 4 --config ui.allowemptycommit=true
$ hg merge -q 0
$ hg ci -m 5
$ hg ci -m 6 --config ui.allowemptycommit=true
$ hg up -q 1
$ hg branch -q b7
$ hg ci -m 7
$ hg ci -m 8 --config ui.allowemptycommit=true
$ hg up -q 6
$ hg ci -m 9 --config ui.allowemptycommit=true
$ hg up -q 8
$ hg merge -q 9
$ hg ci -m 10
$ hg log -Gq -T'{rev} {branch} -> {p1.rev} {p2.rev}\n'
@ 10 b7 -> 8 9
|\
| o 9 b2 -> 6 -1
| |
o | 8 b7 -> 7 -1
| |
o | 7 b7 -> 1 -1
| |
| o 6 b2 -> 5 -1
| |
| o 5 b2 -> 4 0
| |\
| | o 4 b2 -> 3 -1
| | |
+---o 3 b2 -> 2 1
| | |
| | o 2 b2 -> -1 -1
| |
o | 1 b1 -> -1 -1
/
o 0 b0 -> -1 -1
$ cd ..
subsetparents
-------------
$ cd a
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+i"))}\n' -r 'c+i'
o 10 i: 2
:
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+h+i"))}\n' -r 'c+h+i'
o 10 i: 6
|\
o : 6 h: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+h+l"))}\n' -r 'c+h+l'
o 11 l tip: 6
:\
: o 6 h: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+f+l"))}\n' -r 'c+f+l'
o 11 l tip: 4
:\
: o 4 f: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+h+i+k"))}\n' -r 'c+h+i+k'
o 10 i: 6
|\
| : o 9 k: 2
| :/
o : 6 h: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+d+h+i+k"))}\n' -r 'c+d+h+i+k'
o 10 i: 6 3
|\
| : o 9 k: 3
| :/
o : 6 h: 2
: :
: o 3 d: 2
:/|
: ~
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+j+k+i"))}\n' -r 'c+j+k+i'
o 10 i: 2
:
: o 9 k: 7
:/|
: o 7 j: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("c+e+f+j"))}\n' -r 'c+e+f+j'
o 7 j: 2
:
: o 5 e: 2
:/
: o 4 f: 2
:/
o 2 c:
|
~
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("b+e+f+j"))}\n' -r 'b+e+f+j'
o 7 j: 1
:
: o 5 e: 1
:/
: o 4 f: 1
:/
o 1 b:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("a+c+f+g+j+l"))}\n' -r 'a+c+f+g+j+l'
o 11 l tip: 4 8 7
:\
: \
: :\
: : \
: : :\
: : : \
: : : :\
: o---+ : 8 g: 0 2
: :/ / /
: +---o 7 j: 0 2
: : :/
o---+ 4 f: 2
/ /
: o 2 c:
: |
: ~
o 0 a:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("b+i+l"))}\n' -r 'b+i+l'
o 11 l tip: 10
|\
o : 10 i: 1
:/
o 1 b:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("b+i+j+l"))}\n' -r 'b+i+j+l'
o 11 l tip: 10 7
|\
| \
| :\
o : : 10 i: 1
:/ /
: o 7 j: 1
:/
o 1 b:
null in subset:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("null+a+c+f"))}\n' -r 'null+a+c+f'
o 4 f: 2
|
o 2 c: -1
:
: o 0 a: -1
:/
@ -1 : -1
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("null+a+b+c+f"))}\n' -r 'null+a+b+c+f'
o 4 f: 2
|
o 2 c: 1
|
o 1 b: -1
|
| o 0 a: -1
|/
@ -1 : -1
wdir in subset:
$ hg update -qC i
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("f+k+wdir()"))}\n' -r 'f+k+wdir()'
o 2147483647 : 4
:
: o 9 k:
: |\
: ~ ~
o 4 f:
|
~
$ hg update -qC null
Revisions not in subset:
$ hg log -T '{rev} {tags}: {subsetparents(rev, revset("a+c+f+g+j+l"))}\n'
11 l tip: 4 8 7
10 i:
9 k:
8 g: 0 2
7 j: 0 2
6 h:
5 e:
4 f: 2
3 d:
2 c:
1 b:
0 a:
$ hg log -T '{rev} {tags}: {subsetparents(rev, revset("b+c"))}\n'
11 l tip:
10 i:
9 k:
8 g:
7 j:
6 h:
5 e:
4 f:
3 d:
2 c: 1
1 b:
0 a:
$ hg log -T '{rev} {tags}: {subsetparents(rev, revset("b+c"))}\n' -r'reverse(null:2)'
2 c: 1
1 b:
0 a:
-1 :
Nothing excluded:
$ hg log -T '{rev} {tags}: {subsetparents(rev, revset("null:wdir()"))}\n' -r'reverse(null:wdir())'
2147483647 : -1
11 l tip: 10 9
10 i: 6 8
9 k: 5 7
8 g: 5
7 j: 3
6 h: 4
5 e: 3
4 f: 2
3 d: 0 2
2 c: 1
1 b: -1
0 a: -1
-1 : -1
Uncachable query:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("%d:%d", rev, rev - 1))}\n'
o 11 l tip: 10
|\
| o 10 i:
| |\
o \ \ 9 k:
|\ \ \
+-----o 8 g:
| | |
| o | 7 j:
| | |
| | o 6 h:
| | |
o | | 5 e:
|/ /
| o 4 f:
| |
o | 3 d: 2
|\|
| o 2 c: 1
| |
| o 1 b:
|
o 0 a: -1
Invalid arguments:
$ hg log -T '{subsetparents()}\n'
hg: parse error: subsetparents expects two arguments
[10]
$ hg log -T '{subsetparents("a")}\n'
hg: parse error: subsetparents expects two arguments
[10]
$ hg log -T '{subsetparents(rev, extras)}\n'
hg: parse error: subsetparents expects a queried revset
[10]
$ cd ..
subsetparents: p1/p2 order
-------------------------
$ cd named-branch-order
Parents should be sorted in p1/p2 order since p1 is likely to belong to
the same named branch:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("0+1+2+6"))}\n' -r '0+1+2+6'
o 6 : 2 1 0
:\
: \
: :\
: : o 2 :
: :
: o 1 :
:
o 0 :
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("0+1+2+6+10"))}\n' -r '0+1+2+6+10'
@ 10 tip: 6
:\
: o 6 : 2 1 0
:/:\
: : o 2 :
: :
o : 1 :
/
o 0 :
And p1 path should be selected if both p1/p2 paths exist:
$ hg log -Gq -T '{rev} {tags}: {subsetparents(rev, revset("0+1+2+10"))}\n' -r '0+1+2+10'
@ 10 tip: 1 2 0
:\
: \
: :\
: : o 2 :
: :
o : 1 :
/
o 0 :
$ cd ..