Mercurial > public > mercurial-scm > hg-stable
diff tests/test-template-map.t @ 38438:ddce7bdf7f3c
tests: extract test-template-map.t from test-command-template.t
test-command-template.t is one of the slowest tests. Let's split it into
4 files of manageable size.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 16 Jun 2018 12:37:43 +0900 |
parents | tests/test-command-template.t@4b73f316ba0e |
children | 34ecc0a09c76 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-template-map.t Sat Jun 16 12:37:43 2018 +0900 @@ -0,0 +1,1760 @@ +Test template map files and styles +================================== + + $ 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 + +Add some simple styles to settings + + $ cat <<'EOF' >> .hg/hgrc + > [templates] + > simple = "{rev}\n" + > simple2 = {rev}\n + > rev = "should not precede {rev} keyword\n" + > EOF + + $ hg log -l1 -Tsimple + 8 + $ hg log -l1 -Tsimple2 + 8 + $ hg log -l1 -Trev + should not precede 8 keyword + $ hg log -l1 -T '{simple}' + 8 + +Map file shouldn't see user templates: + + $ cat <<EOF > tmpl + > changeset = 'nothing expanded:{simple}\n' + > EOF + $ hg log -l1 --style ./tmpl + nothing expanded: + +Test templates and style maps in files: + + $ echo "{rev}" > tmpl + $ hg log -l1 -T./tmpl + 8 + $ hg log -l1 -Tblah/blah + blah/blah (no-eol) + + $ printf 'changeset = "{rev}\\n"\n' > map-simple + $ hg log -l1 -T./map-simple + 8 + + a map file may have [templates] and [templatealias] sections: + + $ cat <<'EOF' > map-simple + > [templates] + > changeset = "{a}\n" + > [templatealias] + > a = rev + > EOF + $ hg log -l1 -T./map-simple + 8 + + so it can be included in hgrc + + $ cat <<EOF > myhgrc + > %include $HGRCPATH + > %include map-simple + > [templates] + > foo = "{changeset}" + > EOF + $ HGRCPATH=./myhgrc hg log -l1 -Tfoo + 8 + $ HGRCPATH=./myhgrc hg log -l1 -T'{a}\n' + 8 + +Test template map inheritance + + $ echo "__base__ = map-cmdline.default" > map-simple + $ printf 'cset = "changeset: ***{rev}***\\n"\n' >> map-simple + $ hg log -l1 -T./map-simple + changeset: ***8*** + tag: tip + user: test + date: Wed Jan 01 10:01:00 2020 +0000 + summary: third + + +Test docheader, docfooter and separator in template map + + $ cat <<'EOF' > map-myjson + > docheader = '\{\n' + > docfooter = '\n}\n' + > separator = ',\n' + > changeset = ' {dict(rev, node|short)|json}' + > EOF + $ hg log -l2 -T./map-myjson + { + {"node": "95c24699272e", "rev": 8}, + {"node": "29114dbae42b", "rev": 7} + } + +Test docheader, docfooter and separator in [templates] section + + $ cat <<'EOF' >> .hg/hgrc + > [templates] + > myjson = ' {dict(rev, node|short)|json}' + > myjson:docheader = '\{\n' + > myjson:docfooter = '\n}\n' + > myjson:separator = ',\n' + > :docheader = 'should not be selected as a docheader for literal templates\n' + > EOF + $ hg log -l2 -Tmyjson + { + {"node": "95c24699272e", "rev": 8}, + {"node": "29114dbae42b", "rev": 7} + } + $ hg log -l1 -T'{rev}\n' + 8 + +Template should precede style option + + $ hg log -l1 --style default -T '{rev}\n' + 8 + +Add a commit with empty description, to ensure that the templates +below will omit the description line. + + $ echo c >> c + $ hg add c + $ hg commit -qm ' ' + +Default style is like normal output. Phases style should be the same +as default style, except for extra phase lines. + + $ hg log > log.out + $ hg log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg log -T phases > phases.out + $ diff -U 0 log.out phases.out | egrep -v '^---|^\+\+\+|^@@' + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + + $ 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 -v -T phases > phases.out + $ diff -U 0 log.out phases.out | egrep -v '^---|^\+\+\+|^@@' + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + +phase: draft + + $ hg log -q > log.out + $ hg log -q --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg log -q -T phases > phases.out + $ cmp log.out phases.out || diff -u log.out phases.out + + $ hg log --debug > log.out + $ hg log --debug --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg log --debug -T phases > phases.out + $ cmp log.out phases.out || diff -u log.out phases.out + +Default style of working-directory revision should also be the same (but +date may change while running tests): + + $ hg log -r 'wdir()' | sed 's|^date:.*|date:|' > log.out + $ hg log -r 'wdir()' --style default | sed 's|^date:.*|date:|' > style.out + $ cmp log.out style.out || diff -u log.out style.out + + $ hg log -r 'wdir()' -v | sed 's|^date:.*|date:|' > log.out + $ hg log -r 'wdir()' -v --style default | sed 's|^date:.*|date:|' > style.out + $ cmp log.out style.out || diff -u log.out style.out + + $ hg log -r 'wdir()' -q > log.out + $ hg log -r 'wdir()' -q --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + + $ hg log -r 'wdir()' --debug | sed 's|^date:.*|date:|' > log.out + $ hg log -r 'wdir()' --debug --style default \ + > | sed 's|^date:.*|date:|' > style.out + $ cmp log.out style.out || diff -u log.out style.out + +Default style should also preserve color information (issue2866): + + $ cp $HGRCPATH $HGRCPATH-bak + $ cat <<EOF >> $HGRCPATH + > [extensions] + > color= + > EOF + + $ hg --color=debug log > log.out + $ hg --color=debug log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg --color=debug log -T phases > phases.out + $ diff -U 0 log.out phases.out | egrep -v '^---|^\+\+\+|^@@' + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + + $ hg --color=debug -v log > log.out + $ hg --color=debug -v log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg --color=debug -v log -T phases > phases.out + $ diff -U 0 log.out phases.out | egrep -v '^---|^\+\+\+|^@@' + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + +[log.phase|phase: draft] + + $ hg --color=debug -q log > log.out + $ hg --color=debug -q log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg --color=debug -q log -T phases > phases.out + $ cmp log.out phases.out || diff -u log.out phases.out + + $ hg --color=debug --debug log > log.out + $ hg --color=debug --debug log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg --color=debug --debug log -T phases > phases.out + $ cmp log.out phases.out || diff -u log.out phases.out + + $ mv $HGRCPATH-bak $HGRCPATH + +Remove commit with empty commit message, so as to not pollute further +tests. + + $ hg --config extensions.strip= strip -q . + +Revision with no copies (used to print a traceback): + + $ hg tip -v --template '\n' + + +Compact style works: + + $ hg log -Tcompact + 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 d41e714fe50d 1970-01-18 08:40 +0000 person + merge + + 5:3 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4 bbe44766e73d 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 d41e714fe50d 1970-01-18 08:40 +0000 person + merge + + 5:3 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4 bbe44766e73d 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 d41e714fe50d 1970-01-18 08:40 +0000 person + merge + + 5:3,-1 13207e5a10d9 1970-01-18 08:40 +0000 person + new head + + 4:3,-1 bbe44766e73d 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 -r 'not all()' + <?xml version="1.0"?> + <log> + </log> + + $ 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="d41e714fe50d9e4a5f11b4d595d543481b5f980b"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="bbe44766e73d5f11ed2177f1838de10c53ef3e74" /> + <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="bbe44766e73d5f11ed2177f1838de10c53ef3e74"> + <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="d41e714fe50d9e4a5f11b4d595d543481b5f980b"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="bbe44766e73d5f11ed2177f1838de10c53ef3e74" /> + <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="bbe44766e73d5f11ed2177f1838de10c53ef3e74"> + <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="d41e714fe50d9e4a5f11b4d595d543481b5f980b"> + <parent revision="5" node="13207e5a10d9fd28ec424934298e176197f2c67f" /> + <parent revision="4" node="bbe44766e73d5f11ed2177f1838de10c53ef3e74" /> + <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="bbe44766e73d5f11ed2177f1838de10c53ef3e74"> + <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> + + +Test JSON style: + + $ hg log -k nosuch -Tjson + [ + ] + + $ hg log -qr . -Tjson + [ + { + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "rev": 8 + } + ] + + $ hg log -vpr . -Tjson --stat + [ + { + "bookmarks": [], + "branch": "default", + "date": [1577872860, 0], + "desc": "third", + "diff": "diff -r 29114dbae42b -r 95c24699272e fourth\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/fourth\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+second\ndiff -r 29114dbae42b -r 95c24699272e second\n--- a/second\tMon Jan 12 13:46:40 1970 +0000\n+++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n@@ -1,1 +0,0 @@\n-second\ndiff -r 29114dbae42b -r 95c24699272e third\n--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+++ b/third\tWed Jan 01 10:01:00 2020 +0000\n@@ -0,0 +1,1 @@\n+third\n", + "diffstat": " fourth | 1 +\n second | 1 -\n third | 1 +\n 3 files changed, 2 insertions(+), 1 deletions(-)\n", + "files": ["fourth", "second", "third"], + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], + "phase": "draft", + "rev": 8, + "tags": ["tip"], + "user": "test" + } + ] + +honor --git but not format-breaking diffopts + $ hg --config diff.noprefix=True log --git -vpr . -Tjson + [ + { + "bookmarks": [], + "branch": "default", + "date": [1577872860, 0], + "desc": "third", + "diff": "diff --git a/second b/fourth\nrename from second\nrename to fourth\ndiff --git a/third b/third\nnew file mode 100644\n--- /dev/null\n+++ b/third\n@@ -0,0 +1,1 @@\n+third\n", + "files": ["fourth", "second", "third"], + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], + "phase": "draft", + "rev": 8, + "tags": ["tip"], + "user": "test" + } + ] + + $ hg log -T json + [ + { + "bookmarks": [], + "branch": "default", + "date": [1577872860, 0], + "desc": "third", + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], + "phase": "draft", + "rev": 8, + "tags": ["tip"], + "user": "test" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1000000, 0], + "desc": "second", + "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453", + "parents": ["0000000000000000000000000000000000000000"], + "phase": "draft", + "rev": 7, + "tags": [], + "user": "User Name <user@hostname>" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1500001, 0], + "desc": "merge", + "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b", + "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"], + "phase": "draft", + "rev": 6, + "tags": [], + "user": "person" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1500000, 0], + "desc": "new head", + "node": "13207e5a10d9fd28ec424934298e176197f2c67f", + "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"], + "phase": "draft", + "rev": 5, + "tags": [], + "user": "person" + }, + { + "bookmarks": [], + "branch": "foo", + "date": [1400000, 0], + "desc": "new branch", + "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74", + "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"], + "phase": "draft", + "rev": 4, + "tags": [], + "user": "person" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1300000, 0], + "desc": "no user, no domain", + "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47", + "parents": ["97054abb4ab824450e9164180baf491ae0078465"], + "phase": "draft", + "rev": 3, + "tags": [], + "user": "person" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1200000, 0], + "desc": "no person", + "node": "97054abb4ab824450e9164180baf491ae0078465", + "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"], + "phase": "draft", + "rev": 2, + "tags": [], + "user": "other@place" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1100000, 0], + "desc": "other 1\nother 2\n\nother 3", + "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965", + "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"], + "phase": "draft", + "rev": 1, + "tags": [], + "user": "A. N. Other <other@place>" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1000000, 0], + "desc": "line 1\nline 2", + "node": "1e4e1b8f71e05681d422154f5421e385fec3454f", + "parents": ["0000000000000000000000000000000000000000"], + "phase": "draft", + "rev": 0, + "tags": [], + "user": "User Name <user@hostname>" + } + ] + + $ hg heads -v -Tjson + [ + { + "bookmarks": [], + "branch": "default", + "date": [1577872860, 0], + "desc": "third", + "files": ["fourth", "second", "third"], + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], + "phase": "draft", + "rev": 8, + "tags": ["tip"], + "user": "test" + }, + { + "bookmarks": [], + "branch": "default", + "date": [1500001, 0], + "desc": "merge", + "files": [], + "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b", + "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"], + "phase": "draft", + "rev": 6, + "tags": [], + "user": "person" + }, + { + "bookmarks": [], + "branch": "foo", + "date": [1400000, 0], + "desc": "new branch", + "files": [], + "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74", + "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"], + "phase": "draft", + "rev": 4, + "tags": [], + "user": "person" + } + ] + + $ hg log --debug -Tjson + [ + { + "added": ["fourth", "third"], + "bookmarks": [], + "branch": "default", + "date": [1577872860, 0], + "desc": "third", + "extra": {"branch": "default"}, + "manifest": "94961b75a2da554b4df6fb599e5bfc7d48de0c64", + "modified": [], + "node": "95c24699272ef57d062b8bccc32c878bf841784a", + "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], + "phase": "draft", + "removed": ["second"], + "rev": 8, + "tags": ["tip"], + "user": "test" + }, + { + "added": ["second"], + "bookmarks": [], + "branch": "default", + "date": [1000000, 0], + "desc": "second", + "extra": {"branch": "default"}, + "manifest": "f2dbc354b94e5ec0b4f10680ee0cee816101d0bf", + "modified": [], + "node": "29114dbae42b9f078cf2714dbe3a86bba8ec7453", + "parents": ["0000000000000000000000000000000000000000"], + "phase": "draft", + "removed": [], + "rev": 7, + "tags": [], + "user": "User Name <user@hostname>" + }, + { + "added": [], + "bookmarks": [], + "branch": "default", + "date": [1500001, 0], + "desc": "merge", + "extra": {"branch": "default"}, + "manifest": "4dc3def4f9b4c6e8de820f6ee74737f91e96a216", + "modified": [], + "node": "d41e714fe50d9e4a5f11b4d595d543481b5f980b", + "parents": ["13207e5a10d9fd28ec424934298e176197f2c67f", "bbe44766e73d5f11ed2177f1838de10c53ef3e74"], + "phase": "draft", + "removed": [], + "rev": 6, + "tags": [], + "user": "person" + }, + { + "added": ["d"], + "bookmarks": [], + "branch": "default", + "date": [1500000, 0], + "desc": "new head", + "extra": {"branch": "default"}, + "manifest": "4dc3def4f9b4c6e8de820f6ee74737f91e96a216", + "modified": [], + "node": "13207e5a10d9fd28ec424934298e176197f2c67f", + "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"], + "phase": "draft", + "removed": [], + "rev": 5, + "tags": [], + "user": "person" + }, + { + "added": [], + "bookmarks": [], + "branch": "foo", + "date": [1400000, 0], + "desc": "new branch", + "extra": {"branch": "foo"}, + "manifest": "cb5a1327723bada42f117e4c55a303246eaf9ccc", + "modified": [], + "node": "bbe44766e73d5f11ed2177f1838de10c53ef3e74", + "parents": ["10e46f2dcbf4823578cf180f33ecf0b957964c47"], + "phase": "draft", + "removed": [], + "rev": 4, + "tags": [], + "user": "person" + }, + { + "added": [], + "bookmarks": [], + "branch": "default", + "date": [1300000, 0], + "desc": "no user, no domain", + "extra": {"branch": "default"}, + "manifest": "cb5a1327723bada42f117e4c55a303246eaf9ccc", + "modified": ["c"], + "node": "10e46f2dcbf4823578cf180f33ecf0b957964c47", + "parents": ["97054abb4ab824450e9164180baf491ae0078465"], + "phase": "draft", + "removed": [], + "rev": 3, + "tags": [], + "user": "person" + }, + { + "added": ["c"], + "bookmarks": [], + "branch": "default", + "date": [1200000, 0], + "desc": "no person", + "extra": {"branch": "default"}, + "manifest": "6e0e82995c35d0d57a52aca8da4e56139e06b4b1", + "modified": [], + "node": "97054abb4ab824450e9164180baf491ae0078465", + "parents": ["b608e9d1a3f0273ccf70fb85fd6866b3482bf965"], + "phase": "draft", + "removed": [], + "rev": 2, + "tags": [], + "user": "other@place" + }, + { + "added": ["b"], + "bookmarks": [], + "branch": "default", + "date": [1100000, 0], + "desc": "other 1\nother 2\n\nother 3", + "extra": {"branch": "default"}, + "manifest": "4e8d705b1e53e3f9375e0e60dc7b525d8211fe55", + "modified": [], + "node": "b608e9d1a3f0273ccf70fb85fd6866b3482bf965", + "parents": ["1e4e1b8f71e05681d422154f5421e385fec3454f"], + "phase": "draft", + "removed": [], + "rev": 1, + "tags": [], + "user": "A. N. Other <other@place>" + }, + { + "added": ["a"], + "bookmarks": [], + "branch": "default", + "date": [1000000, 0], + "desc": "line 1\nline 2", + "extra": {"branch": "default"}, + "manifest": "a0c8bcbbb45c63b90b70ad007bf38961f64f2af0", + "modified": [], + "node": "1e4e1b8f71e05681d422154f5421e385fec3454f", + "parents": ["0000000000000000000000000000000000000000"], + "phase": "draft", + "removed": [], + "rev": 0, + "tags": [], + "user": "User Name <user@hostname>" + } + ] + +Error if style not readable: + +#if unix-permissions no-root + $ touch q + $ chmod 0 q + $ hg log --style ./q + abort: Permission denied: ./q + [255] +#endif + +Error if no style: + + $ hg log --style notexist + abort: style 'notexist' not found + (available styles: bisect, changelog, compact, default, phases, show, status, xml) + [255] + + $ hg log -T list + available styles: bisect, changelog, compact, default, phases, show, status, xml + abort: specify a template + [255] + +Error if style missing key: + + $ echo 'q = q' > t + $ hg log --style ./t + abort: "changeset" not in template map + [255] + +Error if style missing value: + + $ echo 'changeset =' > t + $ hg log --style t + hg: parse error at t:1: missing value + [255] + +Error if include fails: + + $ echo 'changeset = q' >> t +#if unix-permissions no-root + $ hg log --style ./t + abort: template file ./q: Permission denied + [255] + $ rm -f q +#endif + +Include works: + + $ echo '{rev}' > q + $ hg log --style ./t + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 + + $ hg phase -r 5 --public + $ hg phase -r 7 --secret --force + +Missing non-standard names give no error (backward compatibility): + + $ echo "changeset = '{c}'" > t + $ hg log --style ./t + +Defining non-standard name works: + + $ cat <<EOF > t + > changeset = '{c}' + > c = q + > EOF + $ 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 + [d41e714fe50d] + + * d: + new head + [13207e5a10d9] + + 1970-01-17 person <person> + + * new branch + [bbe44766e73d] <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] + + +Issue2130: xml output for 'hg heads' is malformed + + $ hg heads --style changelog + 2020-01-01 test <test> + + * fourth, second, third: + third + [95c24699272e] [tip] + + 1970-01-18 person <person> + + * merge + [d41e714fe50d] + + 1970-01-17 person <person> + + * new branch + [bbe44766e73d] <foo> + + +Add a dummy commit to make up for the instability of the above: + + $ echo a > a + $ hg add a + $ hg ci -m future + +Add a commit that does all possible modifications at once + + $ echo modify >> third + $ touch b + $ hg add b + $ hg mv fourth fifth + $ hg rm a + $ hg ci -m "Modify, add, remove, rename" + +Check the status template + + $ cat <<EOF >> $HGRCPATH + > [extensions] + > color= + > EOF + + $ hg log -T status -r 10 + changeset: 10:0f9759ec227a + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Modify, add, remove, rename + files: + M third + A b + A fifth + R a + R fourth + + $ hg log -T status -C -r 10 + changeset: 10:0f9759ec227a + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Modify, add, remove, rename + files: + M third + A b + A fifth + fourth + R a + R fourth + + $ hg log -T status -C -r 10 -v + changeset: 10:0f9759ec227a + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + description: + Modify, add, remove, rename + + files: + M third + A b + A fifth + fourth + R a + R fourth + + $ hg log -T status -C -r 10 --debug + changeset: 10:0f9759ec227a4859c2014a345cd8a859022b7c6c + tag: tip + phase: secret + parent: 9:bf9dfba36635106d6a73ccc01e28b762da60e066 + parent: -1:0000000000000000000000000000000000000000 + manifest: 8:89dd546f2de0a9d6d664f58d86097eb97baba567 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + extra: branch=default + description: + Modify, add, remove, rename + + files: + M third + A b + A fifth + fourth + R a + R fourth + + $ hg log -T status -C -r 10 --quiet + 10:0f9759ec227a + $ hg --color=debug log -T status -r 10 + [log.changeset changeset.secret|changeset: 10:0f9759ec227a] + [log.tag|tag: tip] + [log.user|user: test] + [log.date|date: Thu Jan 01 00:00:00 1970 +0000] + [log.summary|summary: Modify, add, remove, rename] + [ui.note log.files|files:] + [status.modified|M third] + [status.added|A b] + [status.added|A fifth] + [status.removed|R a] + [status.removed|R fourth] + + $ hg --color=debug log -T status -C -r 10 + [log.changeset changeset.secret|changeset: 10:0f9759ec227a] + [log.tag|tag: tip] + [log.user|user: test] + [log.date|date: Thu Jan 01 00:00:00 1970 +0000] + [log.summary|summary: Modify, add, remove, rename] + [ui.note log.files|files:] + [status.modified|M third] + [status.added|A b] + [status.added|A fifth] + [status.copied| fourth] + [status.removed|R a] + [status.removed|R fourth] + + $ hg --color=debug log -T status -C -r 10 -v + [log.changeset changeset.secret|changeset: 10:0f9759ec227a] + [log.tag|tag: tip] + [log.user|user: test] + [log.date|date: Thu Jan 01 00:00:00 1970 +0000] + [ui.note log.description|description:] + [ui.note log.description|Modify, add, remove, rename] + + [ui.note log.files|files:] + [status.modified|M third] + [status.added|A b] + [status.added|A fifth] + [status.copied| fourth] + [status.removed|R a] + [status.removed|R fourth] + + $ hg --color=debug log -T status -C -r 10 --debug + [log.changeset changeset.secret|changeset: 10:0f9759ec227a4859c2014a345cd8a859022b7c6c] + [log.tag|tag: tip] + [log.phase|phase: secret] + [log.parent changeset.secret|parent: 9:bf9dfba36635106d6a73ccc01e28b762da60e066] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 8:89dd546f2de0a9d6d664f58d86097eb97baba567] + [log.user|user: test] + [log.date|date: Thu Jan 01 00:00:00 1970 +0000] + [ui.debug log.extra|extra: branch=default] + [ui.note log.description|description:] + [ui.note log.description|Modify, add, remove, rename] + + [ui.note log.files|files:] + [status.modified|M third] + [status.added|A b] + [status.added|A fifth] + [status.copied| fourth] + [status.removed|R a] + [status.removed|R fourth] + + $ hg --color=debug log -T status -C -r 10 --quiet + [log.node|10:0f9759ec227a] + +Check the bisect template + + $ hg bisect -g 1 + $ hg bisect -b 3 --noupdate + Testing changeset 2:97054abb4ab8 (2 changesets remaining, ~1 tests) + $ hg log -T bisect -r 0:4 + changeset: 0:1e4e1b8f71e0 + bisect: good (implicit) + user: User Name <user@hostname> + date: Mon Jan 12 13:46:40 1970 +0000 + summary: line 1 + + changeset: 1:b608e9d1a3f0 + bisect: good + user: A. N. Other <other@place> + date: Tue Jan 13 17:33:20 1970 +0000 + summary: other 1 + + changeset: 2:97054abb4ab8 + bisect: untested + user: other@place + date: Wed Jan 14 21:20:00 1970 +0000 + summary: no person + + changeset: 3:10e46f2dcbf4 + bisect: bad + user: person + date: Fri Jan 16 01:06:40 1970 +0000 + summary: no user, no domain + + changeset: 4:bbe44766e73d + bisect: bad (implicit) + branch: foo + user: person + date: Sat Jan 17 04:53:20 1970 +0000 + summary: new branch + + $ hg log --debug -T bisect -r 0:4 + changeset: 0:1e4e1b8f71e05681d422154f5421e385fec3454f + bisect: good (implicit) + phase: public + parent: -1:0000000000000000000000000000000000000000 + parent: -1:0000000000000000000000000000000000000000 + manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 + user: User Name <user@hostname> + date: Mon Jan 12 13:46:40 1970 +0000 + files+: a + extra: branch=default + description: + line 1 + line 2 + + + changeset: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965 + bisect: good + phase: public + parent: 0:1e4e1b8f71e05681d422154f5421e385fec3454f + parent: -1:0000000000000000000000000000000000000000 + manifest: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55 + user: A. N. Other <other@place> + date: Tue Jan 13 17:33:20 1970 +0000 + files+: b + extra: branch=default + description: + other 1 + other 2 + + other 3 + + + changeset: 2:97054abb4ab824450e9164180baf491ae0078465 + bisect: untested + phase: public + parent: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965 + parent: -1:0000000000000000000000000000000000000000 + manifest: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1 + user: other@place + date: Wed Jan 14 21:20:00 1970 +0000 + files+: c + extra: branch=default + description: + no person + + + changeset: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 + bisect: bad + phase: public + parent: 2:97054abb4ab824450e9164180baf491ae0078465 + parent: -1:0000000000000000000000000000000000000000 + manifest: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc + user: person + date: Fri Jan 16 01:06:40 1970 +0000 + files: c + extra: branch=default + description: + no user, no domain + + + changeset: 4:bbe44766e73d5f11ed2177f1838de10c53ef3e74 + bisect: bad (implicit) + branch: foo + phase: draft + parent: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 + parent: -1:0000000000000000000000000000000000000000 + manifest: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc + user: person + date: Sat Jan 17 04:53:20 1970 +0000 + extra: branch=foo + description: + new branch + + + $ hg log -v -T bisect -r 0:4 + changeset: 0:1e4e1b8f71e0 + bisect: good (implicit) + user: User Name <user@hostname> + date: Mon Jan 12 13:46:40 1970 +0000 + files: a + description: + line 1 + line 2 + + + changeset: 1:b608e9d1a3f0 + bisect: good + user: A. N. Other <other@place> + date: Tue Jan 13 17:33:20 1970 +0000 + files: b + description: + other 1 + other 2 + + other 3 + + + changeset: 2:97054abb4ab8 + bisect: untested + user: other@place + date: Wed Jan 14 21:20:00 1970 +0000 + files: c + description: + no person + + + changeset: 3:10e46f2dcbf4 + bisect: bad + user: person + date: Fri Jan 16 01:06:40 1970 +0000 + files: c + description: + no user, no domain + + + changeset: 4:bbe44766e73d + bisect: bad (implicit) + branch: foo + user: person + date: Sat Jan 17 04:53:20 1970 +0000 + description: + new branch + + + $ hg --color=debug log -T bisect -r 0:4 + [log.changeset changeset.public|changeset: 0:1e4e1b8f71e0] + [log.bisect bisect.good|bisect: good (implicit)] + [log.user|user: User Name <user@hostname>] + [log.date|date: Mon Jan 12 13:46:40 1970 +0000] + [log.summary|summary: line 1] + + [log.changeset changeset.public|changeset: 1:b608e9d1a3f0] + [log.bisect bisect.good|bisect: good] + [log.user|user: A. N. Other <other@place>] + [log.date|date: Tue Jan 13 17:33:20 1970 +0000] + [log.summary|summary: other 1] + + [log.changeset changeset.public|changeset: 2:97054abb4ab8] + [log.bisect bisect.untested|bisect: untested] + [log.user|user: other@place] + [log.date|date: Wed Jan 14 21:20:00 1970 +0000] + [log.summary|summary: no person] + + [log.changeset changeset.public|changeset: 3:10e46f2dcbf4] + [log.bisect bisect.bad|bisect: bad] + [log.user|user: person] + [log.date|date: Fri Jan 16 01:06:40 1970 +0000] + [log.summary|summary: no user, no domain] + + [log.changeset changeset.draft|changeset: 4:bbe44766e73d] + [log.bisect bisect.bad|bisect: bad (implicit)] + [log.branch|branch: foo] + [log.user|user: person] + [log.date|date: Sat Jan 17 04:53:20 1970 +0000] + [log.summary|summary: new branch] + + $ hg --color=debug log --debug -T bisect -r 0:4 + [log.changeset changeset.public|changeset: 0:1e4e1b8f71e05681d422154f5421e385fec3454f] + [log.bisect bisect.good|bisect: good (implicit)] + [log.phase|phase: public] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0] + [log.user|user: User Name <user@hostname>] + [log.date|date: Mon Jan 12 13:46:40 1970 +0000] + [ui.debug log.files|files+: a] + [ui.debug log.extra|extra: branch=default] + [ui.note log.description|description:] + [ui.note log.description|line 1 + line 2] + + + [log.changeset changeset.public|changeset: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965] + [log.bisect bisect.good|bisect: good] + [log.phase|phase: public] + [log.parent changeset.public|parent: 0:1e4e1b8f71e05681d422154f5421e385fec3454f] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55] + [log.user|user: A. N. Other <other@place>] + [log.date|date: Tue Jan 13 17:33:20 1970 +0000] + [ui.debug log.files|files+: b] + [ui.debug log.extra|extra: branch=default] + [ui.note log.description|description:] + [ui.note log.description|other 1 + other 2 + + other 3] + + + [log.changeset changeset.public|changeset: 2:97054abb4ab824450e9164180baf491ae0078465] + [log.bisect bisect.untested|bisect: untested] + [log.phase|phase: public] + [log.parent changeset.public|parent: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1] + [log.user|user: other@place] + [log.date|date: Wed Jan 14 21:20:00 1970 +0000] + [ui.debug log.files|files+: c] + [ui.debug log.extra|extra: branch=default] + [ui.note log.description|description:] + [ui.note log.description|no person] + + + [log.changeset changeset.public|changeset: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47] + [log.bisect bisect.bad|bisect: bad] + [log.phase|phase: public] + [log.parent changeset.public|parent: 2:97054abb4ab824450e9164180baf491ae0078465] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc] + [log.user|user: person] + [log.date|date: Fri Jan 16 01:06:40 1970 +0000] + [ui.debug log.files|files: c] + [ui.debug log.extra|extra: branch=default] + [ui.note log.description|description:] + [ui.note log.description|no user, no domain] + + + [log.changeset changeset.draft|changeset: 4:bbe44766e73d5f11ed2177f1838de10c53ef3e74] + [log.bisect bisect.bad|bisect: bad (implicit)] + [log.branch|branch: foo] + [log.phase|phase: draft] + [log.parent changeset.public|parent: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47] + [log.parent changeset.public|parent: -1:0000000000000000000000000000000000000000] + [ui.debug log.manifest|manifest: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc] + [log.user|user: person] + [log.date|date: Sat Jan 17 04:53:20 1970 +0000] + [ui.debug log.extra|extra: branch=foo] + [ui.note log.description|description:] + [ui.note log.description|new branch] + + + $ hg --color=debug log -v -T bisect -r 0:4 + [log.changeset changeset.public|changeset: 0:1e4e1b8f71e0] + [log.bisect bisect.good|bisect: good (implicit)] + [log.user|user: User Name <user@hostname>] + [log.date|date: Mon Jan 12 13:46:40 1970 +0000] + [ui.note log.files|files: a] + [ui.note log.description|description:] + [ui.note log.description|line 1 + line 2] + + + [log.changeset changeset.public|changeset: 1:b608e9d1a3f0] + [log.bisect bisect.good|bisect: good] + [log.user|user: A. N. Other <other@place>] + [log.date|date: Tue Jan 13 17:33:20 1970 +0000] + [ui.note log.files|files: b] + [ui.note log.description|description:] + [ui.note log.description|other 1 + other 2 + + other 3] + + + [log.changeset changeset.public|changeset: 2:97054abb4ab8] + [log.bisect bisect.untested|bisect: untested] + [log.user|user: other@place] + [log.date|date: Wed Jan 14 21:20:00 1970 +0000] + [ui.note log.files|files: c] + [ui.note log.description|description:] + [ui.note log.description|no person] + + + [log.changeset changeset.public|changeset: 3:10e46f2dcbf4] + [log.bisect bisect.bad|bisect: bad] + [log.user|user: person] + [log.date|date: Fri Jan 16 01:06:40 1970 +0000] + [ui.note log.files|files: c] + [ui.note log.description|description:] + [ui.note log.description|no user, no domain] + + + [log.changeset changeset.draft|changeset: 4:bbe44766e73d] + [log.bisect bisect.bad|bisect: bad (implicit)] + [log.branch|branch: foo] + [log.user|user: person] + [log.date|date: Sat Jan 17 04:53:20 1970 +0000] + [ui.note log.description|description:] + [ui.note log.description|new branch] + + + $ hg bisect --reset + + $ cd .. + +Set up latesttag repository: + + $ hg init latesttag + $ cd latesttag + + $ echo a > file + $ hg ci -Am a -d '0 0' + adding file + + $ echo b >> file + $ hg ci -m b -d '1 0' + + $ echo c >> head1 + $ hg ci -Am h1c -d '2 0' + adding head1 + + $ hg update -q 1 + $ echo d >> head2 + $ hg ci -Am h2d -d '3 0' + adding head2 + created new head + + $ echo e >> head2 + $ hg ci -m h2e -d '4 0' + + $ hg merge -q + $ hg ci -m merge -d '5 -3600' + + $ hg tag -r 1 -m t1 -d '6 0' t1 + $ hg tag -r 2 -m t2 -d '7 0' t2 + $ hg tag -r 3 -m t3 -d '8 0' t3 + $ hg tag -r 4 -m t4 -d '4 0' t4 # older than t2, but should not matter + $ hg tag -r 5 -m t5 -d '9 0' t5 + $ hg tag -r 3 -m at3 -d '10 0' at3 + + $ cd .. + +Style path expansion: issue1948 - ui.style option doesn't work on OSX +if it is a relative path + + $ 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 11:97e5943b523a + +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 + 11,test + branch: test