Mercurial > public > mercurial-scm > hg-stable
diff tests/test-command-template.t @ 12283:850e089eb41c
tests: unify test-command-template
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Tue, 14 Sep 2010 19:31:00 +0200 |
parents | tests/test-command-template@83eb6b1465bf |
children | 4134686b83e1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-command-template.t Tue Sep 14 19:31:00 2010 +0200 @@ -0,0 +1,1327 @@ + $ 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" + +Make sure user/global hgrc does not affect tests + + $ echo '[ui]' > .hg/hgrc + $ echo 'logtemplate =' >> .hg/hgrc + $ echo 'style =' >> .hg/hgrc + +Default style is like normal output: + + $ hg log > log.out + $ hg log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + + $ hg log -v > log.out + $ hg log -v --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + + $ hg log --debug > log.out + $ hg log --debug --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + +Revision with no copies (used to print a traceback): + + $ hg tip -v --template '\n' + + +Compact style works: + + $ hg log --style compact + 8[tip] 95c24699272e 2020-01-01 10:01 +0000 test + third + + 7:-1 29114dbae42b 1970-01-12 13:46 +0000 user + second + + 6:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person + merge + + 5:3 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4 32a18f097fcc 1970-01-17 04:53 +0000 person + new branch + + 3 10e46f2dcbf4 1970-01-16 01:06 +0000 person + no user, no domain + + 2 97054abb4ab8 1970-01-14 21:20 +0000 other + no person + + 1 b608e9d1a3f0 1970-01-13 17:33 +0000 other + other 1 + + 0 1e4e1b8f71e0 1970-01-12 13:46 +0000 user + line 1 + + + $ hg log -v --style compact + 8[tip] 95c24699272e 2020-01-01 10:01 +0000 test + third + + 7:-1 29114dbae42b 1970-01-12 13:46 +0000 User Name <user@hostname> + second + + 6:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person + merge + + 5:3 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4 32a18f097fcc 1970-01-17 04:53 +0000 person + new branch + + 3 10e46f2dcbf4 1970-01-16 01:06 +0000 person + no user, no domain + + 2 97054abb4ab8 1970-01-14 21:20 +0000 other@place + no person + + 1 b608e9d1a3f0 1970-01-13 17:33 +0000 A. N. Other <other@place> + other 1 + other 2 + + other 3 + + 0 1e4e1b8f71e0 1970-01-12 13:46 +0000 User Name <user@hostname> + line 1 + line 2 + + + $ hg log --debug --style compact + 8[tip]:7,-1 95c24699272e 2020-01-01 10:01 +0000 test + third + + 7:-1,-1 29114dbae42b 1970-01-12 13:46 +0000 User Name <user@hostname> + second + + 6:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person + merge + + 5:3,-1 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4:3,-1 32a18f097fcc 1970-01-17 04:53 +0000 person + new branch + + 3:2,-1 10e46f2dcbf4 1970-01-16 01:06 +0000 person + no user, no domain + + 2:1,-1 97054abb4ab8 1970-01-14 21:20 +0000 other@place + no person + + 1:0,-1 b608e9d1a3f0 1970-01-13 17:33 +0000 A. N. Other <other@place> + other 1 + other 2 + + other 3 + + 0:-1,-1 1e4e1b8f71e0 1970-01-12 13:46 +0000 User Name <user@hostname> + line 1 + line 2 + + +Test xml styles: + + $ hg log --style xml + <?xml version="1.0"?> + <log> + <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a"> + <tag>tip</tag> + <author email="test">test</author> + <date>2020-01-01T10:01:00+00:00</date> + <msg xml:space="preserve">third</msg> + </logentry> + <logentry revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453"> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">second</msg> + </logentry> + <logentry revision="6" node="c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4" /> + <author email="person">person</author> + <date>1970-01-18T08:40:01+00:00</date> + <msg xml:space="preserve">merge</msg> + </logentry> + <logentry revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f"> + <parent revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47" /> + <author email="person">person</author> + <date>1970-01-18T08:40:00+00:00</date> + <msg xml:space="preserve">new head</msg> + </logentry> + <logentry revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4"> + <branch>foo</branch> + <author email="person">person</author> + <date>1970-01-17T04:53:20+00:00</date> + <msg xml:space="preserve">new branch</msg> + </logentry> + <logentry revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47"> + <author email="person">person</author> + <date>1970-01-16T01:06:40+00:00</date> + <msg xml:space="preserve">no user, no domain</msg> + </logentry> + <logentry revision="2" node="97054abb4ab824450e9164180baf491ae0078465"> + <author email="other@place">other</author> + <date>1970-01-14T21:20:00+00:00</date> + <msg xml:space="preserve">no person</msg> + </logentry> + <logentry revision="1" node="b608e9d1a3f0273ccf70fb85fd6866b3482bf965"> + <author email="other@place">A. N. Other</author> + <date>1970-01-13T17:33:20+00:00</date> + <msg xml:space="preserve">other 1 + other 2 + + other 3</msg> + </logentry> + <logentry revision="0" node="1e4e1b8f71e05681d422154f5421e385fec3454f"> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">line 1 + line 2</msg> + </logentry> + </log> + + $ hg log -v --style xml + <?xml version="1.0"?> + <log> + <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a"> + <tag>tip</tag> + <author email="test">test</author> + <date>2020-01-01T10:01:00+00:00</date> + <msg xml:space="preserve">third</msg> + <paths> + <path action="A">fourth</path> + <path action="A">third</path> + <path action="R">second</path> + </paths> + <copies> + <copy source="second">fourth</copy> + </copies> + </logentry> + <logentry revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453"> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">second</msg> + <paths> + <path action="A">second</path> + </paths> + </logentry> + <logentry revision="6" node="c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4" /> + <author email="person">person</author> + <date>1970-01-18T08:40:01+00:00</date> + <msg xml:space="preserve">merge</msg> + <paths> + </paths> + </logentry> + <logentry revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f"> + <parent revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47" /> + <author email="person">person</author> + <date>1970-01-18T08:40:00+00:00</date> + <msg xml:space="preserve">new head</msg> + <paths> + <path action="A">d</path> + </paths> + </logentry> + <logentry revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4"> + <branch>foo</branch> + <author email="person">person</author> + <date>1970-01-17T04:53:20+00:00</date> + <msg xml:space="preserve">new branch</msg> + <paths> + </paths> + </logentry> + <logentry revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47"> + <author email="person">person</author> + <date>1970-01-16T01:06:40+00:00</date> + <msg xml:space="preserve">no user, no domain</msg> + <paths> + <path action="M">c</path> + </paths> + </logentry> + <logentry revision="2" node="97054abb4ab824450e9164180baf491ae0078465"> + <author email="other@place">other</author> + <date>1970-01-14T21:20:00+00:00</date> + <msg xml:space="preserve">no person</msg> + <paths> + <path action="A">c</path> + </paths> + </logentry> + <logentry revision="1" node="b608e9d1a3f0273ccf70fb85fd6866b3482bf965"> + <author email="other@place">A. N. Other</author> + <date>1970-01-13T17:33:20+00:00</date> + <msg xml:space="preserve">other 1 + other 2 + + other 3</msg> + <paths> + <path action="A">b</path> + </paths> + </logentry> + <logentry revision="0" node="1e4e1b8f71e05681d422154f5421e385fec3454f"> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">line 1 + line 2</msg> + <paths> + <path action="A">a</path> + </paths> + </logentry> + </log> + + $ hg log --debug --style xml + <?xml version="1.0"?> + <log> + <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a"> + <tag>tip</tag> + <parent revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="test">test</author> + <date>2020-01-01T10:01:00+00:00</date> + <msg xml:space="preserve">third</msg> + <paths> + <path action="A">fourth</path> + <path action="A">third</path> + <path action="R">second</path> + </paths> + <copies> + <copy source="second">fourth</copy> + </copies> + <extra key="branch">default</extra> + </logentry> + <logentry revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453"> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">second</msg> + <paths> + <path action="A">second</path> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="6" node="c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4" /> + <author email="person">person</author> + <date>1970-01-18T08:40:01+00:00</date> + <msg xml:space="preserve">merge</msg> + <paths> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f"> + <parent revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="person">person</author> + <date>1970-01-18T08:40:00+00:00</date> + <msg xml:space="preserve">new head</msg> + <paths> + <path action="A">d</path> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="4" node="32a18f097fcccf76ef282f62f8a85b3adf8d13c4"> + <branch>foo</branch> + <parent revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="person">person</author> + <date>1970-01-17T04:53:20+00:00</date> + <msg xml:space="preserve">new branch</msg> + <paths> + </paths> + <extra key="branch">foo</extra> + </logentry> + <logentry revision="3" node="10e46f2dcbf4823578cf180f33ecf0b957964c47"> + <parent revision="2" node="97054abb4ab824450e9164180baf491ae0078465" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="person">person</author> + <date>1970-01-16T01:06:40+00:00</date> + <msg xml:space="preserve">no user, no domain</msg> + <paths> + <path action="M">c</path> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="2" node="97054abb4ab824450e9164180baf491ae0078465"> + <parent revision="1" node="b608e9d1a3f0273ccf70fb85fd6866b3482bf965" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="other@place">other</author> + <date>1970-01-14T21:20:00+00:00</date> + <msg xml:space="preserve">no person</msg> + <paths> + <path action="A">c</path> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="1" node="b608e9d1a3f0273ccf70fb85fd6866b3482bf965"> + <parent revision="0" node="1e4e1b8f71e05681d422154f5421e385fec3454f" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="other@place">A. N. Other</author> + <date>1970-01-13T17:33:20+00:00</date> + <msg xml:space="preserve">other 1 + other 2 + + other 3</msg> + <paths> + <path action="A">b</path> + </paths> + <extra key="branch">default</extra> + </logentry> + <logentry revision="0" node="1e4e1b8f71e05681d422154f5421e385fec3454f"> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <parent revision="-1" node="0000000000000000000000000000000000000000" /> + <author email="user@hostname">User Name</author> + <date>1970-01-12T13:46:40+00:00</date> + <msg xml:space="preserve">line 1 + line 2</msg> + <paths> + <path action="A">a</path> + </paths> + <extra key="branch">default</extra> + </logentry> + </log> + + +Error if style not readable: + + $ touch q + $ chmod 0 q + $ hg log --style ./q + abort: Permission denied: ./q + +Error if no style: + + $ hg log --style notexist + abort: style not found: notexist + +Error if style missing key: + + $ echo 'q = q' > t + $ hg log --style ./t + abort: ./t: no key named 'changeset' + +Error if include fails: + + $ echo 'changeset = q' >> t + $ hg log --style ./t + abort: template file ./q: Permission denied + +Include works: + + $ rm q + $ echo '{rev}' > q + $ hg log --style ./t + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + +ui.style works: + + $ echo '[ui]' > .hg/hgrc + $ echo 'style = t' >> .hg/hgrc + $ hg log + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + +Issue338: + + $ hg log --style=changelog > changelog + + $ cat changelog + 2020-01-01 test <test> + + * fourth, second, third: + third + [95c24699272e] [tip] + + 1970-01-12 User Name <user@hostname> + + * second: + second + [29114dbae42b] + + 1970-01-18 person <person> + + * merge + [c7b487c6c50e] + + * d: + new head + [13207e5a10d9] + + 1970-01-17 person <person> + + * new branch + [32a18f097fcc] <foo> + + 1970-01-16 person <person> + + * c: + no user, no domain + [10e46f2dcbf4] + + 1970-01-14 other <other@place> + + * c: + no person + [97054abb4ab8] + + 1970-01-13 A. N. Other <other@place> + + * b: + other 1 other 2 + + other 3 + [b608e9d1a3f0] + + 1970-01-12 User Name <user@hostname> + + * a: + line 1 line 2 + [1e4e1b8f71e0] + + +Issue 2130: + + $ hg heads --style changelog + 2020-01-01 test <test> + + * fourth, second, third: + third + [95c24699272e] [tip] + + 1970-01-18 person <person> + + * merge + [c7b487c6c50e] + + 1970-01-17 person <person> + + * new branch + [32a18f097fcc] <foo> + + +Keys work: + + $ for key in author branches date desc file_adds file_dels file_mods \ + > file_copies file_copies_switch files \ + > manifest node parents rev tags diffstat extras; do + > 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> + 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: 8:94961b75a2da + manifest: 7:f2dbc354b94e + manifest: 6:91015e9dbdd7 + manifest: 5:4dc3def4f9b4 + manifest: 4:90ae8dda64e1 + manifest: 3:cb5a1327723b + manifest: 2:6e0e82995c35 + manifest: 1:4e8d705b1e53 + manifest: 0:a0c8bcbbb45c + manifest--verbose: 8:94961b75a2da + manifest--verbose: 7:f2dbc354b94e + manifest--verbose: 6:91015e9dbdd7 + manifest--verbose: 5:4dc3def4f9b4 + manifest--verbose: 4:90ae8dda64e1 + manifest--verbose: 3:cb5a1327723b + manifest--verbose: 2:6e0e82995c35 + manifest--verbose: 1:4e8d705b1e53 + manifest--verbose: 0:a0c8bcbbb45c + manifest--debug: 8:94961b75a2da554b4df6fb599e5bfc7d48de0c64 + manifest--debug: 7:f2dbc354b94e5ec0b4f10680ee0cee816101d0bf + manifest--debug: 6:91015e9dbdd76a6791085d12b0a0ec7fcd22ffbf + manifest--debug: 5:4dc3def4f9b4c6e8de820f6ee74737f91e96a216 + manifest--debug: 4:90ae8dda64e1a876c792bccb9af66284f6018363 + manifest--debug: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc + manifest--debug: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1 + manifest--debug: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55 + manifest--debug: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 + node: 95c24699272ef57d062b8bccc32c878bf841784a + node: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 + node: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f + node: 13207e5a10d9fd28ec424934298e176197f2c67f + node: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4 + node: 10e46f2dcbf4823578cf180f33ecf0b957964c47 + node: 97054abb4ab824450e9164180baf491ae0078465 + node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 + node: 1e4e1b8f71e05681d422154f5421e385fec3454f + node--verbose: 95c24699272ef57d062b8bccc32c878bf841784a + node--verbose: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 + node--verbose: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f + node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f + node--verbose: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4 + node--verbose: 10e46f2dcbf4823578cf180f33ecf0b957964c47 + node--verbose: 97054abb4ab824450e9164180baf491ae0078465 + node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 + node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f + node--debug: 95c24699272ef57d062b8bccc32c878bf841784a + node--debug: 29114dbae42b9f078cf2714dbe3a86bba8ec7453 + node--debug: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f + node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f + node--debug: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4 + node--debug: 10e46f2dcbf4823578cf180f33ecf0b957964c47 + node--debug: 97054abb4ab824450e9164180baf491ae0078465 + node--debug: b608e9d1a3f0273ccf70fb85fd6866b3482bf965 + node--debug: 1e4e1b8f71e05681d422154f5421e385fec3454f + parents: + parents: -1:000000000000 + parents: 5:13207e5a10d9 4:32a18f097fcc + parents: 3:10e46f2dcbf4 + parents: + parents: + parents: + parents: + parents: + parents--verbose: + parents--verbose: -1:000000000000 + parents--verbose: 5:13207e5a10d9 4:32a18f097fcc + 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:32a18f097fcccf76ef282f62f8a85b3adf8d13c4 + 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 + + +Filters work: + + $ hg log --template '{author|domain}\n' + + hostname + + + + + place + place + hostname + + $ hg log --template '{author|person}\n' + test + User Name + person + person + person + person + other + A. N. Other + User Name + + $ hg log --template '{author|user}\n' + test + user + person + person + person + person + other + other + user + + $ hg log --template '{date|age}\n' > /dev/null || exit 1 + + $ hg log -l1 --template '{date|age}\n' + in the future + $ hg log --template '{date|date}\n' + Wed Jan 01 10:01:00 2020 +0000 + Mon Jan 12 13:46:40 1970 +0000 + Sun Jan 18 08:40:01 1970 +0000 + Sun Jan 18 08:40:00 1970 +0000 + Sat Jan 17 04:53:20 1970 +0000 + Fri Jan 16 01:06:40 1970 +0000 + Wed Jan 14 21:20:00 1970 +0000 + Tue Jan 13 17:33:20 1970 +0000 + Mon Jan 12 13:46:40 1970 +0000 + + $ hg log --template '{date|isodate}\n' + 2020-01-01 10:01 +0000 + 1970-01-12 13:46 +0000 + 1970-01-18 08:40 +0000 + 1970-01-18 08:40 +0000 + 1970-01-17 04:53 +0000 + 1970-01-16 01:06 +0000 + 1970-01-14 21:20 +0000 + 1970-01-13 17:33 +0000 + 1970-01-12 13:46 +0000 + + $ hg log --template '{date|isodatesec}\n' + 2020-01-01 10:01:00 +0000 + 1970-01-12 13:46:40 +0000 + 1970-01-18 08:40:01 +0000 + 1970-01-18 08:40:00 +0000 + 1970-01-17 04:53:20 +0000 + 1970-01-16 01:06:40 +0000 + 1970-01-14 21:20:00 +0000 + 1970-01-13 17:33:20 +0000 + 1970-01-12 13:46:40 +0000 + + $ hg log --template '{date|rfc822date}\n' + Wed, 01 Jan 2020 10:01:00 +0000 + Mon, 12 Jan 1970 13:46:40 +0000 + Sun, 18 Jan 1970 08:40:01 +0000 + Sun, 18 Jan 1970 08:40:00 +0000 + Sat, 17 Jan 1970 04:53:20 +0000 + Fri, 16 Jan 1970 01:06:40 +0000 + Wed, 14 Jan 1970 21:20:00 +0000 + Tue, 13 Jan 1970 17:33:20 +0000 + Mon, 12 Jan 1970 13:46:40 +0000 + + $ hg log --template '{desc|firstline}\n' + third + second + merge + new head + new branch + no user, no domain + no person + other 1 + line 1 + + $ hg log --template '{node|short}\n' + 95c24699272e + 29114dbae42b + c7b487c6c50e + 13207e5a10d9 + 32a18f097fcc + 10e46f2dcbf4 + 97054abb4ab8 + b608e9d1a3f0 + 1e4e1b8f71e0 + + $ hg log --template '<changeset author="{author|xmlescape}"/>\n' + <changeset author="test"/> + <changeset author="User Name <user@hostname>"/> + <changeset author="person"/> + <changeset author="person"/> + <changeset author="person"/> + <changeset author="person"/> + <changeset author="other@place"/> + <changeset author="A. N. Other <other@place>"/> + <changeset author="User Name <user@hostname>"/> + + $ hg log --template '{rev}: {children}\n' + 8: + 7: 8:95c24699272e + 6: + 5: 6:c7b487c6c50e + 4: 6:c7b487c6c50e + 3: 4:32a18f097fcc 5:13207e5a10d9 + 2: 3:10e46f2dcbf4 + 1: 2:97054abb4ab8 + 0: 1:b608e9d1a3f0 + +Formatnode filter works: + + $ hg -q log -r 0 --template '{node|formatnode}\n' + 1e4e1b8f71e0 + + $ hg log -r 0 --template '{node|formatnode}\n' + 1e4e1b8f71e0 + + $ hg -v log -r 0 --template '{node|formatnode}\n' + 1e4e1b8f71e0 + + $ hg --debug log -r 0 --template '{node|formatnode}\n' + 1e4e1b8f71e05681d422154f5421e385fec3454f + +Error on syntax: + + $ echo 'x = "f' >> t + $ hg log + abort: t:3: unmatched quotes + + $ 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 0' + +No tag set: + + $ hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' + 5: null+5 + 4: null+4 + 3: null+3 + 2: null+3 + 1: null+2 + 0: null+1 + +One common tag: longuest path wins: + + $ hg tag -r 1 -m t1 -d '6 0' t1 + $ hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' + 6: t1+4 + 5: t1+3 + 4: t1+2 + 3: t1+1 + 2: t1+1 + 1: t1+0 + 0: null+1 + +One ancestor tag: more recent wins: + + $ hg tag -r 2 -m t2 -d '7 0' t2 + $ hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' + 7: t2+3 + 6: t2+2 + 5: t2+1 + 4: t1+2 + 3: t1+1 + 2: t2+0 + 1: t1+0 + 0: null+1 + +Two branch tags: more recent wins: + + $ hg tag -r 3 -m t3 -d '8 0' t3 + $ hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' + 8: t3+5 + 7: t3+4 + 6: t3+3 + 5: t3+2 + 4: t3+1 + 3: t3+0 + 2: t2+0 + 1: t1+0 + 0: null+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 --template '{rev}: {latesttag}+{latesttagdistance}\n' + 10: t5+5 + 9: t5+4 + 8: t5+3 + 7: t5+2 + 6: t5+1 + 5: t5+0 + 4: at3:t3+1 + 3: at3:t3+0 + 2: t2+0 + 1: t1+0 + 0: null+1 + + $ cd .. + + +Style path expansion (issue1948): + + $ mkdir -p home/styles + + $ cat > home/styles/teststyle <<EOF + > changeset = 'test {rev}:{node|short}\n' + > EOF + + $ HOME=`pwd`/home; export HOME + + $ cat > latesttag/.hg/hgrc <<EOF + > [ui] + > style = ~/styles/teststyle + > EOF + + $ hg -R latesttag tip + test 10:dee8f28249af + +Test recursive showlist template (issue1989): + + $ cat > style1989 <<EOF + > changeset = '{file_mods}{manifest}{extras}' + > file_mod = 'M|{author|person}\n' + > manifest = '{rev},{author}\n' + > extra = '{key}: {author}\n' + > EOF + + $ hg -R latesttag log -r tip --style=style1989 + M|test + 10,test + branch: test +