Mercurial > hg
changeset 12283:850e089eb41c
tests: unify test-command-template
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Tue, 14 Sep 2010 19:31:00 +0200 |
parents | 9e457c3f47d9 |
children | f7eb190310ef |
files | tests/test-command-template tests/test-command-template.out tests/test-command-template.t |
diffstat | 3 files changed, 1327 insertions(+), 1309 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-command-template Tue Sep 14 22:11:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -#!/bin/sh - -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 -echo second > second -hg add second -hg commit -m second -d '1000000 0' -u 'User Name <user@hostname>' -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 - -echo '# default style is like normal output' -echo '# normal' -hg log > log.out -hg log --style default > style.out -cmp log.out style.out || diff -u log.out style.out -echo '# verbose' -hg log -v > log.out -hg log -v --style default > style.out -cmp log.out style.out || diff -u log.out style.out -echo '# debug' -hg log --debug > log.out -hg log --debug --style default > style.out -cmp log.out style.out || diff -u log.out style.out - -echo '# revision with no copies (used to print a traceback)' -hg tip -v --template '\n' - -echo '# compact style works' -hg log --style compact -hg log -v --style compact -hg log --debug --style compact - -# Test xml styles -echo '# xml style works (--style xml)' -hg log --style xml -echo '# xml style works (-v --style xml)' -hg log -v --style xml -echo '# xml style works (--debug --style xml)' -hg log --debug --style xml - -echo '# error if style not readable' -touch q -chmod 0 q -hg log --style ./q - -echo '# error if no style' -hg log --style notexist - -echo '# error if style missing key' -echo 'q = q' > t -hg log --style ./t - -echo '# error if include fails' -echo 'changeset = q' >> t -hg log --style ./t - -echo '# include works' -rm q -echo '{rev}' > q -hg log --style ./t - -echo '# ui.style works' -echo '[ui]' > .hg/hgrc -echo 'style = t' >> .hg/hgrc -hg log - -echo '# issue338' -hg log --style=changelog > changelog -cat changelog - -echo '# issue 2130' -hg heads --style changelog - -echo "# 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 - -echo '# filters work' -hg log --template '{author|domain}\n' -hg log --template '{author|person}\n' -hg log --template '{author|user}\n' -hg log --template '{date|age}\n' > /dev/null || exit 1 -hg log -l1 --template '{date|age}\n' -hg log --template '{date|date}\n' -hg log --template '{date|isodate}\n' -hg log --template '{date|isodatesec}\n' -hg log --template '{date|rfc822date}\n' -hg log --template '{desc|firstline}\n' -hg log --template '{node|short}\n' -hg log --template '<changeset author="{author|xmlescape}"/>\n' -hg log --template '{rev}: {children}\n' - -echo '# formatnode filter works' -echo '# quiet' -hg -q log -r 0 --template '{node|formatnode}\n' -echo '# normal' -hg log -r 0 --template '{node|formatnode}\n' -echo '# verbose' -hg -v log -r 0 --template '{node|formatnode}\n' -echo '# debug' -hg --debug log -r 0 --template '{node|formatnode}\n' - -echo '# error on syntax' -echo 'x = "f' >> t -hg log - -cd .. - -echo '# latesttag' -hg init latesttag -cd latesttag - -echo a > file -hg ci -Am a -d '0 0' - -echo b >> file -hg ci -m b -d '1 0' - -echo c >> head1 -hg ci -Am h1c -d '2 0' - -hg update -q 1 -echo d >> head2 -hg ci -Am h2d -d '3 0' - -echo e >> head2 -hg ci -m h2e -d '4 0' - -hg merge -q -hg ci -m merge -d '5 0' - -echo '# No tag set' -hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' - -echo '# one common tag: longuest path wins' -hg tag -r 1 -m t1 -d '6 0' t1 -hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' - -echo '# one ancestor tag: more recent wins' -hg tag -r 2 -m t2 -d '7 0' t2 -hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' - -echo '# two branch tags: more recent wins' -hg tag -r 3 -m t3 -d '8 0' t3 -hg log --template '{rev}: {latesttag}+{latesttagdistance}\n' - -echo '# 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' -cd .. - -echo '# 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 - -echo '# 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 - -echo '# done'
--- a/tests/test-command-template.out Tue Sep 14 22:11:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1098 +0,0 @@ -0 files updated, 0 files merged, 4 files removed, 0 files unresolved -created new head -# default style is like normal output -# normal -# verbose -# debug -# revision with no copies (used to print a traceback) - -# compact style works -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 - -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 - -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 - -# xml style works (--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> -# xml style works (-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> -# xml style works (--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 -abort: Permission denied: ./q -# error if no style -abort: style not found: notexist -# error if style missing key -abort: ./t: no key named 'changeset' -# error if include fails -abort: template file ./q: Permission denied -# include works -8 -7 -6 -5 -4 -3 -2 -1 -0 -# ui.style works -8 -7 -6 -5 -4 -3 -2 -1 -0 -# issue338 -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 -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 -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 - -hostname - - - - -place -place -hostname -test -User Name -person -person -person -person -other -A. N. Other -User Name -test -user -person -person -person -person -other -other -user -in the future -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 -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 -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 -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 -third -second -merge -new head -new branch -no user, no domain -no person -other 1 -line 1 -95c24699272e -29114dbae42b -c7b487c6c50e -13207e5a10d9 -32a18f097fcc -10e46f2dcbf4 -97054abb4ab8 -b608e9d1a3f0 -1e4e1b8f71e0 -<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>"/> -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 -# quiet -1e4e1b8f71e0 -# normal -1e4e1b8f71e0 -# verbose -1e4e1b8f71e0 -# debug -1e4e1b8f71e05681d422154f5421e385fec3454f -# error on syntax -abort: t:3: unmatched quotes -# latesttag -adding file -adding head1 -adding head2 -created new head -# No tag set -5: null+5 -4: null+4 -3: null+3 -2: null+3 -1: null+2 -0: null+1 -# one common tag: longuest path wins -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 -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 -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 -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 -# style path expansion (issue1948) -test 10:dee8f28249af -# test recursive showlist template (issue1989) -M|test -10,test -branch: test -# done
--- /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 +