test-template-graph.t
440 lines
| 6.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-template-graph.t
Yuya Nishihara
|
r45083 | 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 .. | ||||
Yuya Nishihara
|
r45147 | 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 .. | ||||
Yuya Nishihara
|
r45083 | 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 | ||||
Martin von Zweigbergk
|
r46507 | [10] | ||
Yuya Nishihara
|
r45083 | $ hg log -T '{subsetparents("a")}\n' | ||
hg: parse error: subsetparents expects two arguments | ||||
Martin von Zweigbergk
|
r46507 | [10] | ||
Yuya Nishihara
|
r45083 | $ hg log -T '{subsetparents(rev, extras)}\n' | ||
hg: parse error: subsetparents expects a queried revset | ||||
Martin von Zweigbergk
|
r46507 | [10] | ||
Yuya Nishihara
|
r45083 | |||
$ cd .. | ||||
Yuya Nishihara
|
r45147 | |||
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 .. | ||||