test-template-keywords.t
1404 lines
| 32.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-template-keywords.t
Yuya Nishihara
|
r38455 | Test template keywords | ||
====================== | ||||
$ hg init a | ||||
$ cd a | ||||
$ echo a > a | ||||
$ hg add a | ||||
$ echo line 1 > b | ||||
$ echo line 2 >> b | ||||
$ hg commit -l b -d '1000000 0' -u 'User Name <user@hostname>' | ||||
$ hg add b | ||||
$ echo other 1 > c | ||||
$ echo other 2 >> c | ||||
$ echo >> c | ||||
$ echo other 3 >> c | ||||
$ hg commit -l c -d '1100000 0' -u 'A. N. Other <other@place>' | ||||
$ hg add c | ||||
$ hg commit -m 'no person' -d '1200000 0' -u 'other@place' | ||||
$ echo c >> c | ||||
$ hg commit -m 'no user, no domain' -d '1300000 0' -u 'person' | ||||
$ echo foo > .hg/branch | ||||
$ hg commit -m 'new branch' -d '1400000 0' -u 'person' | ||||
$ hg co -q 3 | ||||
$ echo other 4 >> d | ||||
$ hg add d | ||||
$ hg commit -m 'new head' -d '1500000 0' -u 'person' | ||||
$ hg merge -q foo | ||||
$ hg commit -m 'merge' -d '1500001 0' -u 'person' | ||||
Second branch starting at nullrev: | ||||
$ hg update null | ||||
0 files updated, 0 files merged, 4 files removed, 0 files unresolved | ||||
$ echo second > second | ||||
$ hg add second | ||||
$ hg commit -m second -d '1000000 0' -u 'User Name <user@hostname>' | ||||
created new head | ||||
$ echo third > third | ||||
$ hg add third | ||||
$ hg mv second fourth | ||||
$ hg commit -m third -d "2020-01-01 10:01" | ||||
Working-directory revision has special identifiers, though they are still | ||||
experimental: | ||||
$ hg log -r 'wdir()' -T '{rev}:{node}\n' | ||||
2147483647:ffffffffffffffffffffffffffffffffffffffff | ||||
Yuya Nishihara
|
r39831 | $ hg log -r 'wdir()' -Tjson --debug | ||
[ | ||||
{ | ||||
"added": [], | ||||
"bookmarks": [], | ||||
"branch": "default", | ||||
"date": [0, 0], | ||||
"desc": "", | ||||
"extra": {"branch": "default"}, | ||||
Yuya Nishihara
|
r39832 | "manifest": "ffffffffffffffffffffffffffffffffffffffff", | ||
Yuya Nishihara
|
r39831 | "modified": [], | ||
"node": "ffffffffffffffffffffffffffffffffffffffff", | ||||
"parents": ["95c24699272ef57d062b8bccc32c878bf841784a"], | ||||
"phase": "draft", | ||||
"removed": [], | ||||
"rev": 2147483647, | ||||
"tags": [], | ||||
"user": "test" | ||||
} | ||||
] | ||||
Yuya Nishihara
|
r38455 | $ hg log -r 'wdir()' -T '{manifest}\n' | ||
Yuya Nishihara
|
r39832 | 2147483647:ffffffffffff | ||
Yuya Nishihara
|
r38455 | |||
Jordi Gutiérrez Hermoso
|
r41875 | However, for negrev, we refuse to output anything (as well as for null) | ||
$ hg log -r 'wdir() + null' -T 'bla{negrev}nk\n' | ||||
blank | ||||
blank | ||||
Yuya Nishihara
|
r39659 | Changectx-derived keywords are disabled within {manifest} as {node} changes: | ||
$ hg log -r0 -T 'outer:{p1node} {manifest % "inner:{p1node}"}\n' | ||||
outer:0000000000000000000000000000000000000000 inner: | ||||
Yuya Nishihara
|
r38455 | Check that {phase} works correctly on parents: | ||
$ cat << EOF > parentphase | ||||
> changeset_debug = '{rev} ({phase}):{parents}\n' | ||||
> parent = ' {rev} ({phase})' | ||||
> EOF | ||||
$ hg phase -r 5 --public | ||||
$ hg phase -r 7 --secret --force | ||||
$ hg log --debug -G --style ./parentphase | ||||
@ 8 (secret): 7 (secret) -1 (public) | ||||
| | ||||
o 7 (secret): -1 (public) -1 (public) | ||||
o 6 (draft): 5 (public) 4 (draft) | ||||
|\ | ||||
| o 5 (public): 3 (public) -1 (public) | ||||
| | | ||||
o | 4 (draft): 3 (public) -1 (public) | ||||
|/ | ||||
o 3 (public): 2 (public) -1 (public) | ||||
| | ||||
o 2 (public): 1 (public) -1 (public) | ||||
| | ||||
o 1 (public): 0 (public) -1 (public) | ||||
| | ||||
o 0 (public): -1 (public) -1 (public) | ||||
Martin von Zweigbergk
|
r46472 | Test {onelinesummary} | ||
$ hg log -G -T '{onelinesummary}' | ||||
@ 8:95c24699272e tip "third" | ||||
| | ||||
o 7:29114dbae42b "second" | ||||
o 6:d41e714fe50d "merge" | ||||
|\ | ||||
| o 5:13207e5a10d9 "new head" | ||||
| | | ||||
o | 4:bbe44766e73d "new branch" | ||||
|/ | ||||
o 3:10e46f2dcbf4 "no user, no domain" | ||||
| | ||||
o 2:97054abb4ab8 "no person" | ||||
| | ||||
o 1:b608e9d1a3f0 "other 1" | ||||
| | ||||
o 0:1e4e1b8f71e0 "line 1" | ||||
$ hg log -T '{onelinesummary}' -r 0 \ | ||||
> --config command-templates.oneline-summary='{rev} - {desc}' | ||||
0 - line 1 (no-eol) | ||||
Yuya Nishihara
|
r38455 | |||
Keys work: | ||||
$ for key in author branch branches date desc file_adds file_dels file_mods \ | ||||
> file_copies file_copies_switch files \ | ||||
> manifest node parents rev tags diffstat extras \ | ||||
Yuya Nishihara
|
r38983 | > p1rev p2rev p1node p2node user; do | ||
Yuya Nishihara
|
r38455 | > for mode in '' --verbose --debug; do | ||
> hg log $mode --template "$key$mode: {$key}\n" | ||||
> done | ||||
> done | ||||
author: test | ||||
author: User Name <user@hostname> | ||||
author: person | ||||
author: person | ||||
author: person | ||||
author: person | ||||
author: other@place | ||||
author: A. N. Other <other@place> | ||||
author: User Name <user@hostname> | ||||
author--verbose: test | ||||
author--verbose: User Name <user@hostname> | ||||
author--verbose: person | ||||
author--verbose: person | ||||
author--verbose: person | ||||
author--verbose: person | ||||
author--verbose: other@place | ||||
author--verbose: A. N. Other <other@place> | ||||
author--verbose: User Name <user@hostname> | ||||
author--debug: test | ||||
author--debug: User Name <user@hostname> | ||||
author--debug: person | ||||
author--debug: person | ||||
author--debug: person | ||||
author--debug: person | ||||
author--debug: other@place | ||||
author--debug: A. N. Other <other@place> | ||||
author--debug: User Name <user@hostname> | ||||
branch: default | ||||
branch: default | ||||
branch: default | ||||
branch: default | ||||
branch: foo | ||||
branch: default | ||||
branch: default | ||||
branch: default | ||||
branch: default | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--verbose: foo | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--verbose: default | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branch--debug: foo | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branch--debug: default | ||||
branches: | ||||
branches: | ||||
branches: | ||||
branches: | ||||
branches: foo | ||||
branches: | ||||
branches: | ||||
branches: | ||||
branches: | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--verbose: foo | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--verbose: | ||||
branches--debug: | ||||
branches--debug: | ||||
branches--debug: | ||||
branches--debug: | ||||
branches--debug: foo | ||||
branches--debug: | ||||
branches--debug: | ||||
branches--debug: | ||||
branches--debug: | ||||
date: 1577872860.00 | ||||
date: 1000000.00 | ||||
date: 1500001.00 | ||||
date: 1500000.00 | ||||
date: 1400000.00 | ||||
date: 1300000.00 | ||||
date: 1200000.00 | ||||
date: 1100000.00 | ||||
date: 1000000.00 | ||||
date--verbose: 1577872860.00 | ||||
date--verbose: 1000000.00 | ||||
date--verbose: 1500001.00 | ||||
date--verbose: 1500000.00 | ||||
date--verbose: 1400000.00 | ||||
date--verbose: 1300000.00 | ||||
date--verbose: 1200000.00 | ||||
date--verbose: 1100000.00 | ||||
date--verbose: 1000000.00 | ||||
date--debug: 1577872860.00 | ||||
date--debug: 1000000.00 | ||||
date--debug: 1500001.00 | ||||
date--debug: 1500000.00 | ||||
date--debug: 1400000.00 | ||||
date--debug: 1300000.00 | ||||
date--debug: 1200000.00 | ||||
date--debug: 1100000.00 | ||||
date--debug: 1000000.00 | ||||
desc: third | ||||
desc: second | ||||
desc: merge | ||||
desc: new head | ||||
desc: new branch | ||||
desc: no user, no domain | ||||
desc: no person | ||||
desc: other 1 | ||||
other 2 | ||||
other 3 | ||||
desc: line 1 | ||||
line 2 | ||||
desc--verbose: third | ||||
desc--verbose: second | ||||
desc--verbose: merge | ||||
desc--verbose: new head | ||||
desc--verbose: new branch | ||||
desc--verbose: no user, no domain | ||||
desc--verbose: no person | ||||
desc--verbose: other 1 | ||||
other 2 | ||||
other 3 | ||||
desc--verbose: line 1 | ||||
line 2 | ||||
desc--debug: third | ||||
desc--debug: second | ||||
desc--debug: merge | ||||
desc--debug: new head | ||||
desc--debug: new branch | ||||
desc--debug: no user, no domain | ||||
desc--debug: no person | ||||
desc--debug: other 1 | ||||
other 2 | ||||
other 3 | ||||
desc--debug: line 1 | ||||
line 2 | ||||
file_adds: fourth third | ||||
file_adds: second | ||||
file_adds: | ||||
file_adds: d | ||||
file_adds: | ||||
file_adds: | ||||
file_adds: c | ||||
file_adds: b | ||||
file_adds: a | ||||
file_adds--verbose: fourth third | ||||
file_adds--verbose: second | ||||
file_adds--verbose: | ||||
file_adds--verbose: d | ||||
file_adds--verbose: | ||||
file_adds--verbose: | ||||
file_adds--verbose: c | ||||
file_adds--verbose: b | ||||
file_adds--verbose: a | ||||
file_adds--debug: fourth third | ||||
file_adds--debug: second | ||||
file_adds--debug: | ||||
file_adds--debug: d | ||||
file_adds--debug: | ||||
file_adds--debug: | ||||
file_adds--debug: c | ||||
file_adds--debug: b | ||||
file_adds--debug: a | ||||
file_dels: second | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels: | ||||
file_dels--verbose: second | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--verbose: | ||||
file_dels--debug: second | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_dels--debug: | ||||
file_mods: | ||||
file_mods: | ||||
file_mods: | ||||
file_mods: | ||||
file_mods: | ||||
file_mods: c | ||||
file_mods: | ||||
file_mods: | ||||
file_mods: | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--verbose: c | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--verbose: | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_mods--debug: c | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_mods--debug: | ||||
file_copies: fourth (second) | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies: | ||||
file_copies--verbose: fourth (second) | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--verbose: | ||||
file_copies--debug: fourth (second) | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies--debug: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--verbose: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
file_copies_switch--debug: | ||||
files: fourth second third | ||||
files: second | ||||
files: | ||||
files: d | ||||
files: | ||||
files: c | ||||
files: c | ||||
files: b | ||||
files: a | ||||
files--verbose: fourth second third | ||||
files--verbose: second | ||||
files--verbose: | ||||
files--verbose: d | ||||
files--verbose: | ||||
files--verbose: c | ||||
files--verbose: c | ||||
files--verbose: b | ||||
files--verbose: a | ||||
files--debug: fourth second third | ||||
files--debug: second | ||||
files--debug: | ||||
files--debug: d | ||||
files--debug: | ||||
files--debug: c | ||||
files--debug: c | ||||
files--debug: b | ||||
files--debug: a | ||||
manifest: 6:94961b75a2da | ||||
manifest: 5:f2dbc354b94e | ||||
manifest: 4:4dc3def4f9b4 | ||||
manifest: 4:4dc3def4f9b4 | ||||
manifest: 3:cb5a1327723b | ||||
manifest: 3:cb5a1327723b | ||||
manifest: 2:6e0e82995c35 | ||||
manifest: 1:4e8d705b1e53 | ||||
manifest: 0:a0c8bcbbb45c | ||||
manifest--verbose: 6:94961b75a2da | ||||
manifest--verbose: 5:f2dbc354b94e | ||||
manifest--verbose: 4:4dc3def4f9b4 | ||||
manifest--verbose: 4:4dc3def4f9b4 | ||||
manifest--verbose: 3:cb5a1327723b | ||||
manifest--verbose: 3:cb5a1327723b | ||||
manifest--verbose: 2:6e0e82995c35 | ||||
manifest--verbose: 1:4e8d705b1e53 | ||||
manifest--verbose: 0:a0c8bcbbb45c | ||||
manifest--debug: 6:94961b75a2da554b4df6fb599e5bfc7d48de0c64 | ||||
manifest--debug: 5:f2dbc354b94e5ec0b4f10680ee0cee816101d0bf | ||||
manifest--debug: 4:4dc3def4f9b4c6e8de820f6ee74737f91e96a216 | ||||
manifest--debug: 4:4dc3def4f9b4c6e8de820f6ee74737f91e96a216 | ||||
manifest--debug: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc | ||||
manifest--debug: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc | ||||
manifest--debug: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1 | ||||
manifest--debug: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55 | ||||
manifest--debug: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 | ||||
node: 95c24699272ef57d062b8bccc32c878bf841784a | ||||
node: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
node: d41e714fe50d9e4a5f11b4d595d543481b5f980b | ||||
node: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
node: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
node: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
node: 97054abb4ab824450e9164180baf491ae0078465 | ||||
node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
node: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
node--verbose: 95c24699272ef57d062b8bccc32c878bf841784a | ||||
node--verbose: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
node--verbose: d41e714fe50d9e4a5f11b4d595d543481b5f980b | ||||
node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
node--verbose: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
node--verbose: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
node--verbose: 97054abb4ab824450e9164180baf491ae0078465 | ||||
node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
node--debug: 95c24699272ef57d062b8bccc32c878bf841784a | ||||
node--debug: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
node--debug: d41e714fe50d9e4a5f11b4d595d543481b5f980b | ||||
node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
node--debug: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
node--debug: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
node--debug: 97054abb4ab824450e9164180baf491ae0078465 | ||||
node--debug: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
node--debug: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
parents: | ||||
parents: -1:000000000000 | ||||
parents: 5:13207e5a10d9 4:bbe44766e73d | ||||
parents: 3:10e46f2dcbf4 | ||||
parents: | ||||
parents: | ||||
parents: | ||||
parents: | ||||
parents: | ||||
parents--verbose: | ||||
parents--verbose: -1:000000000000 | ||||
parents--verbose: 5:13207e5a10d9 4:bbe44766e73d | ||||
parents--verbose: 3:10e46f2dcbf4 | ||||
parents--verbose: | ||||
parents--verbose: | ||||
parents--verbose: | ||||
parents--verbose: | ||||
parents--verbose: | ||||
parents--debug: 7:29114dbae42b9f078cf2714dbe3a86bba8ec7453 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: -1:0000000000000000000000000000000000000000 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: 5:13207e5a10d9fd28ec424934298e176197f2c67f 4:bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
parents--debug: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: 2:97054abb4ab824450e9164180baf491ae0078465 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965 -1:0000000000000000000000000000000000000000 | ||||
parents--debug: 0:1e4e1b8f71e05681d422154f5421e385fec3454f -1:0000000000000000000000000000000000000000 | ||||
parents--debug: -1:0000000000000000000000000000000000000000 -1:0000000000000000000000000000000000000000 | ||||
rev: 8 | ||||
rev: 7 | ||||
rev: 6 | ||||
rev: 5 | ||||
rev: 4 | ||||
rev: 3 | ||||
rev: 2 | ||||
rev: 1 | ||||
rev: 0 | ||||
rev--verbose: 8 | ||||
rev--verbose: 7 | ||||
rev--verbose: 6 | ||||
rev--verbose: 5 | ||||
rev--verbose: 4 | ||||
rev--verbose: 3 | ||||
rev--verbose: 2 | ||||
rev--verbose: 1 | ||||
rev--verbose: 0 | ||||
rev--debug: 8 | ||||
rev--debug: 7 | ||||
rev--debug: 6 | ||||
rev--debug: 5 | ||||
rev--debug: 4 | ||||
rev--debug: 3 | ||||
rev--debug: 2 | ||||
rev--debug: 1 | ||||
rev--debug: 0 | ||||
tags: tip | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags: | ||||
tags--verbose: tip | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--verbose: | ||||
tags--debug: tip | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
tags--debug: | ||||
diffstat: 3: +2/-1 | ||||
diffstat: 1: +1/-0 | ||||
diffstat: 0: +0/-0 | ||||
diffstat: 1: +1/-0 | ||||
diffstat: 0: +0/-0 | ||||
diffstat: 1: +1/-0 | ||||
diffstat: 1: +4/-0 | ||||
diffstat: 1: +2/-0 | ||||
diffstat: 1: +1/-0 | ||||
diffstat--verbose: 3: +2/-1 | ||||
diffstat--verbose: 1: +1/-0 | ||||
diffstat--verbose: 0: +0/-0 | ||||
diffstat--verbose: 1: +1/-0 | ||||
diffstat--verbose: 0: +0/-0 | ||||
diffstat--verbose: 1: +1/-0 | ||||
diffstat--verbose: 1: +4/-0 | ||||
diffstat--verbose: 1: +2/-0 | ||||
diffstat--verbose: 1: +1/-0 | ||||
diffstat--debug: 3: +2/-1 | ||||
diffstat--debug: 1: +1/-0 | ||||
diffstat--debug: 0: +0/-0 | ||||
diffstat--debug: 1: +1/-0 | ||||
diffstat--debug: 0: +0/-0 | ||||
diffstat--debug: 1: +1/-0 | ||||
diffstat--debug: 1: +4/-0 | ||||
diffstat--debug: 1: +2/-0 | ||||
diffstat--debug: 1: +1/-0 | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras: branch=foo | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=foo | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--verbose: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=foo | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
extras--debug: branch=default | ||||
p1rev: 7 | ||||
p1rev: -1 | ||||
p1rev: 5 | ||||
p1rev: 3 | ||||
p1rev: 3 | ||||
p1rev: 2 | ||||
p1rev: 1 | ||||
p1rev: 0 | ||||
p1rev: -1 | ||||
p1rev--verbose: 7 | ||||
p1rev--verbose: -1 | ||||
p1rev--verbose: 5 | ||||
p1rev--verbose: 3 | ||||
p1rev--verbose: 3 | ||||
p1rev--verbose: 2 | ||||
p1rev--verbose: 1 | ||||
p1rev--verbose: 0 | ||||
p1rev--verbose: -1 | ||||
p1rev--debug: 7 | ||||
p1rev--debug: -1 | ||||
p1rev--debug: 5 | ||||
p1rev--debug: 3 | ||||
p1rev--debug: 3 | ||||
p1rev--debug: 2 | ||||
p1rev--debug: 1 | ||||
p1rev--debug: 0 | ||||
p1rev--debug: -1 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev: 4 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: 4 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--verbose: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: 4 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p2rev--debug: -1 | ||||
p1node: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
p1node: 0000000000000000000000000000000000000000 | ||||
p1node: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
p1node: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node: 97054abb4ab824450e9164180baf491ae0078465 | ||||
p1node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
p1node: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
p1node: 0000000000000000000000000000000000000000 | ||||
p1node--verbose: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
p1node--verbose: 0000000000000000000000000000000000000000 | ||||
p1node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
p1node--verbose: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node--verbose: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node--verbose: 97054abb4ab824450e9164180baf491ae0078465 | ||||
p1node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
p1node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
p1node--verbose: 0000000000000000000000000000000000000000 | ||||
p1node--debug: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 | ||||
p1node--debug: 0000000000000000000000000000000000000000 | ||||
p1node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f | ||||
p1node--debug: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node--debug: 10e46f2dcbf4823578cf180f33ecf0b957964c47 | ||||
p1node--debug: 97054abb4ab824450e9164180baf491ae0078465 | ||||
p1node--debug: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 | ||||
p1node--debug: 1e4e1b8f71e05681d422154f5421e385fec3454f | ||||
p1node--debug: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--verbose: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
p2node--debug: 0000000000000000000000000000000000000000 | ||||
Yuya Nishihara
|
r38983 | user: test | ||
user: User Name <user@hostname> | ||||
user: person | ||||
user: person | ||||
user: person | ||||
user: person | ||||
user: other@place | ||||
user: A. N. Other <other@place> | ||||
user: User Name <user@hostname> | ||||
user--verbose: test | ||||
user--verbose: User Name <user@hostname> | ||||
user--verbose: person | ||||
user--verbose: person | ||||
user--verbose: person | ||||
user--verbose: person | ||||
user--verbose: other@place | ||||
user--verbose: A. N. Other <other@place> | ||||
user--verbose: User Name <user@hostname> | ||||
user--debug: test | ||||
user--debug: User Name <user@hostname> | ||||
user--debug: person | ||||
user--debug: person | ||||
user--debug: person | ||||
user--debug: person | ||||
user--debug: other@place | ||||
user--debug: A. N. Other <other@place> | ||||
user--debug: User Name <user@hostname> | ||||
Yuya Nishihara
|
r38455 | |||
Add a dummy commit to make up for the instability of the above: | ||||
$ echo a > a | ||||
$ hg add a | ||||
$ hg ci -m future | ||||
Add a commit that does all possible modifications at once | ||||
$ echo modify >> third | ||||
$ touch b | ||||
$ hg add b | ||||
$ hg mv fourth fifth | ||||
$ hg rm a | ||||
$ hg ci -m "Modify, add, remove, rename" | ||||
Yuya Nishihara
|
r39403 | Test files list: | ||
$ hg log -l1 -T '{join(file_mods, " ")}\n' | ||||
third | ||||
$ hg log -l1 -T '{file_mods % "{file}\n"}' | ||||
third | ||||
$ hg log -l1 -T '{file_mods % "{path}\n"}' | ||||
third | ||||
$ hg log -l1 -T '{join(files, " ")}\n' | ||||
a b fifth fourth third | ||||
$ hg log -l1 -T '{files % "{file}\n"}' | ||||
a | ||||
b | ||||
fifth | ||||
fourth | ||||
third | ||||
$ hg log -l1 -T '{files % "{path}\n"}' | ||||
a | ||||
b | ||||
fifth | ||||
fourth | ||||
third | ||||
Martin von Zweigbergk
|
r42567 | Test files lists on merge commit: | ||
$ hg co '.^' -q | ||||
$ touch c | ||||
$ hg add c | ||||
$ hg ci -qm 'add file' | ||||
$ hg merge 10 -q | ||||
$ hg ci -m 'merge' | ||||
$ hg log -l1 -T '{files}\n' | ||||
Valentin Gatien-Baron
|
r42840 | |||
Martin von Zweigbergk
|
r42567 | $ hg log -l1 -T '{file_mods}\n' | ||
Martin von Zweigbergk
|
r42597 | |||
Martin von Zweigbergk
|
r42567 | $ hg log -l1 -T '{file_adds}\n' | ||
Martin von Zweigbergk
|
r42597 | |||
Martin von Zweigbergk
|
r42567 | $ hg log -l1 -T '{file_dels}\n' | ||
Valentin Gatien-Baron
|
r42840 | |||
Martin von Zweigbergk
|
r42567 | |||
Yuya Nishihara
|
r39404 | Test file copies dict: | ||
$ hg log -r8 -T '{join(file_copies, " ")}\n' | ||||
fourth (second) | ||||
$ hg log -r8 -T '{file_copies % "{name} <- {source}\n"}' | ||||
fourth <- second | ||||
$ hg log -r8 -T '{file_copies % "{path} <- {source}\n"}' | ||||
fourth <- second | ||||
$ hg log -r8 -T '{join(file_copies_switch, " ")}\n' | ||||
$ hg log -r8 -C -T '{join(file_copies_switch, " ")}\n' | ||||
fourth (second) | ||||
$ hg log -r8 -C -T '{file_copies_switch % "{name} <- {source}\n"}' | ||||
fourth <- second | ||||
$ hg log -r8 -C -T '{file_copies_switch % "{path} <- {source}\n"}' | ||||
fourth <- second | ||||
Yuya Nishihara
|
r39623 | Test file attributes: | ||
Martin von Zweigbergk
|
r42567 | $ hg log -r10 -T '{files % "{status} {pad(size, 3, left=True)} {path}\n"}' | ||
Yuya Nishihara
|
r39636 | R a | ||
A 0 b | ||||
A 7 fifth | ||||
R fourth | ||||
M 13 third | ||||
Test file status including clean ones: | ||||
$ hg log -r9 -T '{files("**") % "{status} {path}\n"}' | ||||
A a | ||||
C fourth | ||||
C third | ||||
Yuya Nishihara
|
r39623 | |||
Yuya Nishihara
|
r38455 | Test index keyword: | ||
Martin von Zweigbergk
|
r42567 | $ hg log -r 10:9 -T '{index + 10}{files % " {index}:{file}"}\n' | ||
Yuya Nishihara
|
r38455 | 10 0:a 1:b 2:fifth 3:fourth 4:third | ||
11 0:a | ||||
$ hg branches -T '{index} {branch}\n' | ||||
0 default | ||||
1 foo | ||||
Yuya Nishihara
|
r40510 | p1/p2 keywords: | ||
$ hg log -r4:7 -GT '{rev} p1:{p1} p2:{p2} p1.rev:{p1.rev} p2.node:{p2.node}\n' | ||||
o 7 p1:-1:000000000000 p2:-1:000000000000 p1.rev:-1 p2.node:0000000000000000000000000000000000000000 | ||||
o 6 p1:5:13207e5a10d9 p2:4:bbe44766e73d p1.rev:5 p2.node:bbe44766e73d5f11ed2177f1838de10c53ef3e74 | ||||
|\ | ||||
| o 5 p1:3:10e46f2dcbf4 p2:-1:000000000000 p1.rev:3 p2.node:0000000000000000000000000000000000000000 | ||||
| | | ||||
| ~ | ||||
o 4 p1:3:10e46f2dcbf4 p2:-1:000000000000 p1.rev:3 p2.node:0000000000000000000000000000000000000000 | ||||
| | ||||
~ | ||||
TODO: no idea what should be displayed as a JSON representation | ||||
$ hg log -r6 -T 'p1:{p1|json}\np2:{p2|json}\n' | ||||
p1:{} | ||||
p2:{} | ||||
Yuya Nishihara
|
r38455 | ui verbosity: | ||
$ hg log -l1 -T '{verbosity}\n' | ||||
$ hg log -l1 -T '{verbosity}\n' --debug | ||||
debug | ||||
$ hg log -l1 -T '{verbosity}\n' --quiet | ||||
quiet | ||||
$ hg log -l1 -T '{verbosity}\n' --verbose | ||||
verbose | ||||
$ cd .. | ||||
latesttag: | ||||
$ hg init latesttag | ||||
$ cd latesttag | ||||
$ echo a > file | ||||
$ hg ci -Am a -d '0 0' | ||||
adding file | ||||
$ echo b >> file | ||||
$ hg ci -m b -d '1 0' | ||||
$ echo c >> head1 | ||||
$ hg ci -Am h1c -d '2 0' | ||||
adding head1 | ||||
$ hg update -q 1 | ||||
$ echo d >> head2 | ||||
$ hg ci -Am h2d -d '3 0' | ||||
adding head2 | ||||
created new head | ||||
$ echo e >> head2 | ||||
$ hg ci -m h2e -d '4 0' | ||||
$ hg merge -q | ||||
$ hg ci -m merge -d '5 -3600' | ||||
No tag set: | ||||
$ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | ||||
@ 5: null+5 | ||||
|\ | ||||
| o 4: null+4 | ||||
| | | ||||
| o 3: null+3 | ||||
| | | ||||
o | 2: null+3 | ||||
|/ | ||||
o 1: null+2 | ||||
| | ||||
o 0: null+1 | ||||
One common tag: longest path wins for {latesttagdistance}: | ||||
$ hg tag -r 1 -m t1 -d '6 0' t1 | ||||
$ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | ||||
@ 6: t1+4 | ||||
| | ||||
o 5: t1+3 | ||||
|\ | ||||
| o 4: t1+2 | ||||
| | | ||||
| o 3: t1+1 | ||||
| | | ||||
o | 2: t1+1 | ||||
|/ | ||||
o 1: t1+0 | ||||
| | ||||
o 0: null+1 | ||||
One ancestor tag: closest wins: | ||||
$ hg tag -r 2 -m t2 -d '7 0' t2 | ||||
$ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | ||||
@ 7: t2+3 | ||||
| | ||||
o 6: t2+2 | ||||
| | ||||
o 5: t2+1 | ||||
|\ | ||||
| o 4: t1+2 | ||||
| | | ||||
| o 3: t1+1 | ||||
| | | ||||
o | 2: t2+0 | ||||
|/ | ||||
o 1: t1+0 | ||||
| | ||||
o 0: null+1 | ||||
Two branch tags: more recent wins if same number of changes: | ||||
$ hg tag -r 3 -m t3 -d '8 0' t3 | ||||
$ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | ||||
@ 8: t3+5 | ||||
| | ||||
o 7: t3+4 | ||||
| | ||||
o 6: t3+3 | ||||
| | ||||
o 5: t3+2 | ||||
|\ | ||||
| o 4: t3+1 | ||||
| | | ||||
| o 3: t3+0 | ||||
| | | ||||
o | 2: t2+0 | ||||
|/ | ||||
o 1: t1+0 | ||||
| | ||||
o 0: null+1 | ||||
Two branch tags: fewest changes wins: | ||||
$ hg tag -r 4 -m t4 -d '4 0' t4 # older than t2, but should not matter | ||||
$ hg log -G --template "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | ||||
@ 9: t4+5,6 | ||||
| | ||||
o 8: t4+4,5 | ||||
| | ||||
o 7: t4+3,4 | ||||
| | ||||
o 6: t4+2,3 | ||||
| | ||||
o 5: t4+1,2 | ||||
|\ | ||||
| o 4: t4+0,0 | ||||
| | | ||||
| o 3: t3+0,0 | ||||
| | | ||||
o | 2: t2+0,0 | ||||
|/ | ||||
o 1: t1+0,0 | ||||
| | ||||
o 0: null+1,1 | ||||
Merged tag overrides: | ||||
$ hg tag -r 5 -m t5 -d '9 0' t5 | ||||
$ hg tag -r 3 -m at3 -d '10 0' at3 | ||||
$ hg log -G --template '{rev}: {latesttag}+{latesttagdistance}\n' | ||||
@ 11: t5+6 | ||||
| | ||||
o 10: t5+5 | ||||
| | ||||
o 9: t5+4 | ||||
| | ||||
o 8: t5+3 | ||||
| | ||||
o 7: t5+2 | ||||
| | ||||
o 6: t5+1 | ||||
| | ||||
o 5: t5+0 | ||||
|\ | ||||
| o 4: t4+0 | ||||
| | | ||||
| o 3: at3:t3+0 | ||||
| | | ||||
o | 2: t2+0 | ||||
|/ | ||||
o 1: t1+0 | ||||
| | ||||
o 0: null+1 | ||||
$ hg log -G --template "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | ||||
@ 11: t5+6,6 | ||||
| | ||||
o 10: t5+5,5 | ||||
| | ||||
o 9: t5+4,4 | ||||
| | ||||
o 8: t5+3,3 | ||||
| | ||||
o 7: t5+2,2 | ||||
| | ||||
o 6: t5+1,1 | ||||
| | ||||
o 5: t5+0,0 | ||||
|\ | ||||
| o 4: t4+0,0 | ||||
| | | ||||
| o 3: at3+0,0 t3+0,0 | ||||
| | | ||||
o | 2: t2+0,0 | ||||
|/ | ||||
o 1: t1+0,0 | ||||
| | ||||
o 0: null+1,1 | ||||
Yuya Nishihara
|
r41335 | Tags of working-directory parents (issue6055): | ||
$ hg update -q 3 | ||||
$ echo a > head3 | ||||
$ hg ci -qAm h3a | ||||
$ hg merge -q 2 | ||||
$ hg log -Gr'::wdir()' -T "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | ||||
Yuya Nishihara
|
r41336 | o 2147483647: at3+2,3 t3+2,3 | ||
|\ | ||||
| @ 12: at3+1,1 t3+1,1 | ||||
| | | ||||
| o 3: at3+0,0 t3+0,0 | ||||
| | | ||||
@ | 2: t2+0,0 | ||||
|/ | ||||
o 1: t1+0,0 | ||||
| | ||||
o 0: null+1,1 | ||||
Yuya Nishihara
|
r41335 | |||
$ hg ci -m merge | ||||
$ hg log -Gr'::.' -T "{rev}: {latesttag % '{tag}+{distance},{changes} '}\n" | ||||
@ 13: at3+2,3 t3+2,3 | ||||
|\ | ||||
| o 12: at3+1,1 t3+1,1 | ||||
| | | ||||
| o 3: at3+0,0 t3+0,0 | ||||
| | | ||||
o | 2: t2+0,0 | ||||
|/ | ||||
o 1: t1+0,0 | ||||
| | ||||
o 0: null+1,1 | ||||
Yuya Nishihara
|
r38455 | $ cd .. | ||
Set up repository containing template fragments in commit metadata: | ||||
$ hg init r | ||||
$ cd r | ||||
$ echo a > a | ||||
$ hg ci -Am '{rev}' | ||||
adding a | ||||
$ hg branch -q 'text.{rev}' | ||||
$ echo aa >> aa | ||||
$ hg ci -u '{node|short}' -m 'desc to be wrapped desc to be wrapped' | ||||
Test termwidth: | ||||
$ COLUMNS=25 hg log -l1 --template '{fill(desc, termwidth, "{node|short}:", "termwidth.{rev}:")}' | ||||
bcc7ff960b8e:desc to be | ||||
termwidth.1:wrapped desc | ||||
termwidth.1:to be wrapped (no-eol) | ||||
Just one more commit: | ||||
$ echo b > b | ||||
$ hg ci -qAm b | ||||
Test 'originalnode' | ||||
$ hg log -r 1 -T '{revset("null") % "{node|short} {originalnode|short}"}\n' | ||||
000000000000 bcc7ff960b8e | ||||
$ hg log -r 0 -T '{manifest % "{node} {originalnode}"}\n' | ||||
a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 f7769ec2ab975ad19684098ad1ffd9b81ecc71a1 | ||||
Test active bookmark templating | ||||
$ hg book foo | ||||
$ hg book bar | ||||
$ hg log --template "{rev} {bookmarks % '{bookmark}{ifeq(bookmark, active, \"*\")} '}\n" | ||||
2 bar* foo | ||||
1 | ||||
0 | ||||
$ hg log --template "{rev} {activebookmark}\n" | ||||
2 bar | ||||
1 | ||||
0 | ||||
$ hg bookmarks --inactive bar | ||||
$ hg log --template "{rev} {activebookmark}\n" | ||||
2 | ||||
1 | ||||
0 | ||||
$ hg book -r1 baz | ||||
$ hg log --template "{rev} {join(bookmarks, ' ')}\n" | ||||
2 bar foo | ||||
1 baz | ||||
0 | ||||
$ hg log --template "{rev} {ifcontains('foo', bookmarks, 't', 'f')}\n" | ||||
2 t | ||||
1 f | ||||
0 f | ||||
Test namespaces dict | ||||
$ hg --config extensions.revnamesext=$TESTDIR/revnamesext.py log -T '{rev}\n{namespaces % " {namespace} color={colorname} builtin={builtin}\n {join(names, ",")}\n"}\n' | ||||
2 | ||||
bookmarks color=bookmark builtin=True | ||||
bar,foo | ||||
tags color=tag builtin=True | ||||
tip | ||||
branches color=branch builtin=True | ||||
text.{rev} | ||||
revnames color=revname builtin=False | ||||
r2 | ||||
1 | ||||
bookmarks color=bookmark builtin=True | ||||
baz | ||||
tags color=tag builtin=True | ||||
branches color=branch builtin=True | ||||
text.{rev} | ||||
revnames color=revname builtin=False | ||||
r1 | ||||
0 | ||||
bookmarks color=bookmark builtin=True | ||||
tags color=tag builtin=True | ||||
branches color=branch builtin=True | ||||
default | ||||
revnames color=revname builtin=False | ||||
r0 | ||||
$ hg log -r2 -T '{namespaces % "{namespace}: {names}\n"}' | ||||
bookmarks: bar foo | ||||
tags: tip | ||||
branches: text.{rev} | ||||
$ hg log -r2 -T '{namespaces % "{namespace}:\n{names % " {name}\n"}"}' | ||||
bookmarks: | ||||
bar | ||||
foo | ||||
tags: | ||||
tip | ||||
branches: | ||||
text.{rev} | ||||
$ hg log -r2 -T '{get(namespaces, "bookmarks") % "{name}\n"}' | ||||
bar | ||||
foo | ||||
$ hg log -r2 -T '{namespaces.bookmarks % "{bookmark}\n"}' | ||||
bar | ||||
foo | ||||
$ cd .. | ||||
Test 'graphwidth' in 'hg log' on various topologies. The key here is that the | ||||
printed graphwidths 3, 5, 7, etc. should all line up in their respective | ||||
columns. We don't care about other aspects of the graph rendering here. | ||||
$ hg init graphwidth | ||||
$ cd graphwidth | ||||
$ wrappabletext="a a a a a a a a a a a a" | ||||
$ printf "first\n" > file | ||||
$ hg add file | ||||
$ hg commit -m "$wrappabletext" | ||||
$ printf "first\nsecond\n" > file | ||||
$ hg commit -m "$wrappabletext" | ||||
$ hg checkout 0 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ printf "third\nfirst\n" > file | ||||
$ hg commit -m "$wrappabletext" | ||||
created new head | ||||
$ hg merge | ||||
merging file | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg log --graph -T "{graphwidth}" | ||||
@ 3 | ||||
| | ||||
| @ 5 | ||||
|/ | ||||
o 3 | ||||
$ hg commit -m "$wrappabletext" | ||||
$ hg log --graph -T "{graphwidth}" | ||||
@ 5 | ||||
|\ | ||||
| o 5 | ||||
| | | ||||
o | 5 | ||||
|/ | ||||
o 3 | ||||
$ hg checkout 0 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ printf "third\nfirst\nsecond\n" > file | ||||
$ hg commit -m "$wrappabletext" | ||||
created new head | ||||
$ hg log --graph -T "{graphwidth}" | ||||
@ 3 | ||||
| | ||||
| o 7 | ||||
| |\ | ||||
+---o 7 | ||||
| | | ||||
| o 5 | ||||
|/ | ||||
o 3 | ||||
$ hg log --graph -T "{graphwidth}" -r 3 | ||||
o 5 | ||||
|\ | ||||
~ ~ | ||||
$ hg log --graph -T "{graphwidth}" -r 1 | ||||
o 3 | ||||
| | ||||
~ | ||||
$ hg merge | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg commit -m "$wrappabletext" | ||||
$ printf "seventh\n" >> file | ||||
$ hg commit -m "$wrappabletext" | ||||
$ hg log --graph -T "{graphwidth}" | ||||
@ 3 | ||||
| | ||||
o 5 | ||||
|\ | ||||
| o 5 | ||||
| | | ||||
o | 7 | ||||
|\ \ | ||||
| o | 7 | ||||
| |/ | ||||
o / 5 | ||||
|/ | ||||
o 3 | ||||
The point of graphwidth is to allow wrapping that accounts for the space taken | ||||
by the graph. | ||||
$ COLUMNS=10 hg log --graph -T "{fill(desc, termwidth - graphwidth)}" | ||||
@ a a a a | ||||
| a a a a | ||||
| a a a a | ||||
o a a a | ||||
|\ a a a | ||||
| | a a a | ||||
| | a a a | ||||
| o a a a | ||||
| | a a a | ||||
| | a a a | ||||
| | a a a | ||||
o | a a | ||||
|\ \ a a | ||||
| | | a a | ||||
| | | a a | ||||
| | | a a | ||||
| | | a a | ||||
| o | a a | ||||
| |/ a a | ||||
| | a a | ||||
| | a a | ||||
| | a a | ||||
| | a a | ||||
o | a a a | ||||
|/ a a a | ||||
| a a a | ||||
| a a a | ||||
o a a a a | ||||
a a a a | ||||
a a a a | ||||
Something tricky happens when there are elided nodes; the next drawn row of | ||||
edges can be more than one column wider, but the graph width only increases by | ||||
one column. The remaining columns are added in between the nodes. | ||||
$ hg log --graph -T "{graphwidth}" -r "0|2|4|5" | ||||
o 5 | ||||
|\ | ||||
| \ | ||||
| :\ | ||||
o : : 7 | ||||
:/ / | ||||
: o 5 | ||||
:/ | ||||
o 3 | ||||
$ cd .. | ||||