graphmod: disable graph styling when HGPLAIN is set (
issue5212)
Produce stable output for tools to rely on by hardcoding all edge styles to
"|". This ensures that any tool parsing the output of hg log -G still gets the
same behaviour as pre-3.8 releases.
--- a/mercurial/cmdutil.py Wed Apr 20 18:26:29 2016 +0100
+++ b/mercurial/cmdutil.py Wed Apr 20 16:33:13 2016 +0100
@@ -2234,20 +2234,26 @@
formatnode = _graphnodeformatter(ui, displayer)
state = graphmod.asciistate()
styles = state['styles']
- edgetypes = {
- 'parent': graphmod.PARENT,
- 'grandparent': graphmod.GRANDPARENT,
- 'missing': graphmod.MISSINGPARENT
- }
- for name, key in edgetypes.items():
- # experimental config: experimental.graphstyle.*
- styles[key] = ui.config('experimental', 'graphstyle.%s' % name,
- styles[key])
- if not styles[key]:
- styles[key] = None
-
- # experimental config: experimental.graphshorten
- state['graphshorten'] = ui.configbool('experimental', 'graphshorten')
+
+ # only set graph styling if HGPLAIN is not set.
+ if ui.plain('graph'):
+ # set all edge styles to |, the default pre-3.8 behaviour
+ styles.update(dict.fromkeys(styles, '|'))
+ else:
+ edgetypes = {
+ 'parent': graphmod.PARENT,
+ 'grandparent': graphmod.GRANDPARENT,
+ 'missing': graphmod.MISSINGPARENT
+ }
+ for name, key in edgetypes.items():
+ # experimental config: experimental.graphstyle.*
+ styles[key] = ui.config('experimental', 'graphstyle.%s' % name,
+ styles[key])
+ if not styles[key]:
+ styles[key] = None
+
+ # experimental config: experimental.graphshorten
+ state['graphshorten'] = ui.configbool('experimental', 'graphshorten')
for rev, type, ctx, parents in dag:
char = formatnode(repo, ctx)
--- a/tests/test-glog.t Wed Apr 20 18:26:29 2016 +0100
+++ b/tests/test-glog.t Wed Apr 20 16:33:13 2016 +0100
@@ -2633,6 +2633,410 @@
summary: (4) merge two known; one immediate left, one immediate right
+Setting HGPLAIN ignores graphmod styling:
+
+ $ HGPLAIN=1 hg log -G -r 'file("a")' -m
+ @ changeset: 36:08a19a744424
+ | branch: branch
+ | tag: tip
+ | parent: 35:9159c3644c5e
+ | parent: 35:9159c3644c5e
+ | user: test
+ | date: Thu Jan 01 00:00:36 1970 +0000
+ | summary: (36) buggy merge: identical parents
+ |
+ o changeset: 32:d06dffa21a31
+ |\ parent: 27:886ed638191b
+ | | parent: 31:621d83e11f67
+ | | user: test
+ | | date: Thu Jan 01 00:00:32 1970 +0000
+ | | summary: (32) expand
+ | |
+ o | changeset: 31:621d83e11f67
+ |\| parent: 21:d42a756af44d
+ | | parent: 30:6e11cd4b648f
+ | | user: test
+ | | date: Thu Jan 01 00:00:31 1970 +0000
+ | | summary: (31) expand
+ | |
+ o | changeset: 30:6e11cd4b648f
+ |\ \ parent: 28:44ecd0b9ae99
+ | | | parent: 29:cd9bb2be7593
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:30 1970 +0000
+ | | | summary: (30) expand
+ | | |
+ o | | changeset: 28:44ecd0b9ae99
+ |\ \ \ parent: 1:6db2ef61d156
+ | | | | parent: 26:7f25b6c2f0b9
+ | | | | user: test
+ | | | | date: Thu Jan 01 00:00:28 1970 +0000
+ | | | | summary: (28) merge zero known
+ | | | |
+ o | | | changeset: 26:7f25b6c2f0b9
+ |\ \ \ \ parent: 18:1aa84d96232a
+ | | | | | parent: 25:91da8ed57247
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:26 1970 +0000
+ | | | | | summary: (26) merge one known; far right
+ | | | | |
+ | o-----+ changeset: 25:91da8ed57247
+ | | | | | parent: 21:d42a756af44d
+ | | | | | parent: 24:a9c19a3d96b7
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:25 1970 +0000
+ | | | | | summary: (25) merge one known; far left
+ | | | | |
+ | o | | | changeset: 24:a9c19a3d96b7
+ | |\ \ \ \ parent: 0:e6eb3150255d
+ | | | | | | parent: 23:a01cddf0766d
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:24 1970 +0000
+ | | | | | | summary: (24) merge one known; immediate right
+ | | | | | |
+ | o---+ | | changeset: 23:a01cddf0766d
+ | | | | | | parent: 1:6db2ef61d156
+ | | | | | | parent: 22:e0d9cccacb5d
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:23 1970 +0000
+ | | | | | | summary: (23) merge one known; immediate left
+ | | | | | |
+ | o-------+ changeset: 22:e0d9cccacb5d
+ | | | | | | parent: 18:1aa84d96232a
+ |/ / / / / parent: 21:d42a756af44d
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:22 1970 +0000
+ | | | | | summary: (22) merge two known; one far left, one far right
+ | | | | |
+ | | | | o changeset: 21:d42a756af44d
+ | | | | |\ parent: 19:31ddc2c1573b
+ | | | | | | parent: 20:d30ed6450e32
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:21 1970 +0000
+ | | | | | | summary: (21) expand
+ | | | | | |
+ +-+-------o changeset: 20:d30ed6450e32
+ | | | | | parent: 0:e6eb3150255d
+ | | | | | parent: 18:1aa84d96232a
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:20 1970 +0000
+ | | | | | summary: (20) merge two known; two far right
+ | | | | |
+ | | | | o changeset: 19:31ddc2c1573b
+ | | | | |\ parent: 15:1dda3f72782d
+ | | | | | | parent: 17:44765d7c06e0
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:19 1970 +0000
+ | | | | | | summary: (19) expand
+ | | | | | |
+ o---+---+ | changeset: 18:1aa84d96232a
+ | | | | | parent: 1:6db2ef61d156
+ / / / / / parent: 15:1dda3f72782d
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:18 1970 +0000
+ | | | | | summary: (18) merge two known; two far left
+ | | | | |
+ | | | | o changeset: 17:44765d7c06e0
+ | | | | |\ parent: 12:86b91144a6e9
+ | | | | | | parent: 16:3677d192927d
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:17 1970 +0000
+ | | | | | | summary: (17) expand
+ | | | | | |
+ +-+-------o changeset: 16:3677d192927d
+ | | | | | parent: 0:e6eb3150255d
+ | | | | | parent: 1:6db2ef61d156
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:16 1970 +0000
+ | | | | | summary: (16) merge two known; one immediate right, one near right
+ | | | | |
+ | | | o | changeset: 15:1dda3f72782d
+ | | | |\ \ parent: 13:22d8966a97e3
+ | | | | | | parent: 14:8eac370358ef
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:15 1970 +0000
+ | | | | | | summary: (15) expand
+ | | | | | |
+ +-------o | changeset: 14:8eac370358ef
+ | | | | |/ parent: 0:e6eb3150255d
+ | | | | | parent: 12:86b91144a6e9
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:14 1970 +0000
+ | | | | | summary: (14) merge two known; one immediate right, one far right
+ | | | | |
+ | | | o | changeset: 13:22d8966a97e3
+ | | | |\ \ parent: 9:7010c0af0a35
+ | | | | | | parent: 11:832d76e6bdf2
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:13 1970 +0000
+ | | | | | | summary: (13) expand
+ | | | | | |
+ | +---+---o changeset: 12:86b91144a6e9
+ | | | | | parent: 1:6db2ef61d156
+ | | | | | parent: 9:7010c0af0a35
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:12 1970 +0000
+ | | | | | summary: (12) merge two known; one immediate right, one far left
+ | | | | |
+ | | | | o changeset: 11:832d76e6bdf2
+ | | | | |\ parent: 6:b105a072e251
+ | | | | | | parent: 10:74c64d036d72
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:11 1970 +0000
+ | | | | | | summary: (11) expand
+ | | | | | |
+ +---------o changeset: 10:74c64d036d72
+ | | | | |/ parent: 0:e6eb3150255d
+ | | | | | parent: 6:b105a072e251
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:10 1970 +0000
+ | | | | | summary: (10) merge two known; one immediate left, one near right
+ | | | | |
+ | | | o | changeset: 9:7010c0af0a35
+ | | | |\ \ parent: 7:b632bb1b1224
+ | | | | | | parent: 8:7a0b11f71937
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:09 1970 +0000
+ | | | | | | summary: (9) expand
+ | | | | | |
+ +-------o | changeset: 8:7a0b11f71937
+ | | | |/ / parent: 0:e6eb3150255d
+ | | | | | parent: 7:b632bb1b1224
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:08 1970 +0000
+ | | | | | summary: (8) merge two known; one immediate left, one far right
+ | | | | |
+ | | | o | changeset: 7:b632bb1b1224
+ | | | |\ \ parent: 2:3d9a33b8d1e1
+ | | | | | | parent: 5:4409d547b708
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:07 1970 +0000
+ | | | | | | summary: (7) expand
+ | | | | | |
+ | | | +---o changeset: 6:b105a072e251
+ | | | | |/ parent: 2:3d9a33b8d1e1
+ | | | | | parent: 5:4409d547b708
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:06 1970 +0000
+ | | | | | summary: (6) merge two known; one immediate left, one far left
+ | | | | |
+ | | | o | changeset: 5:4409d547b708
+ | | | |\ \ parent: 3:27eef8ed80b4
+ | | | | | | parent: 4:26a8bac39d9f
+ | | | | | | user: test
+ | | | | | | date: Thu Jan 01 00:00:05 1970 +0000
+ | | | | | | summary: (5) expand
+ | | | | | |
+ | +---o | | changeset: 4:26a8bac39d9f
+ | | | |/ / parent: 1:6db2ef61d156
+ | | | | | parent: 3:27eef8ed80b4
+ | | | | | user: test
+ | | | | | date: Thu Jan 01 00:00:04 1970 +0000
+ | | | | | summary: (4) merge two known; one immediate left, one immediate right
+ | | | | |
+
+.. unless HGPLAINEXCEPT=graph is set:
+
+ $ HGPLAIN=1 HGPLAINEXCEPT=graph hg log -G -r 'file("a")' -m
+ @ changeset: 36:08a19a744424
+ : branch: branch
+ : tag: tip
+ : parent: 35:9159c3644c5e
+ : parent: 35:9159c3644c5e
+ : user: test
+ : date: Thu Jan 01 00:00:36 1970 +0000
+ : summary: (36) buggy merge: identical parents
+ :
+ o changeset: 32:d06dffa21a31
+ |\ parent: 27:886ed638191b
+ | : parent: 31:621d83e11f67
+ | : user: test
+ | : date: Thu Jan 01 00:00:32 1970 +0000
+ | : summary: (32) expand
+ | :
+ o : changeset: 31:621d83e11f67
+ |\: parent: 21:d42a756af44d
+ | : parent: 30:6e11cd4b648f
+ | : user: test
+ | : date: Thu Jan 01 00:00:31 1970 +0000
+ | : summary: (31) expand
+ | :
+ o : changeset: 30:6e11cd4b648f
+ |\ \ parent: 28:44ecd0b9ae99
+ | ~ : parent: 29:cd9bb2be7593
+ | : user: test
+ | : date: Thu Jan 01 00:00:30 1970 +0000
+ | : summary: (30) expand
+ | /
+ o : changeset: 28:44ecd0b9ae99
+ |\ \ parent: 1:6db2ef61d156
+ | ~ : parent: 26:7f25b6c2f0b9
+ | : user: test
+ | : date: Thu Jan 01 00:00:28 1970 +0000
+ | : summary: (28) merge zero known
+ | /
+ o : changeset: 26:7f25b6c2f0b9
+ |\ \ parent: 18:1aa84d96232a
+ | | : parent: 25:91da8ed57247
+ | | : user: test
+ | | : date: Thu Jan 01 00:00:26 1970 +0000
+ | | : summary: (26) merge one known; far right
+ | | :
+ | o : changeset: 25:91da8ed57247
+ | |\: parent: 21:d42a756af44d
+ | | : parent: 24:a9c19a3d96b7
+ | | : user: test
+ | | : date: Thu Jan 01 00:00:25 1970 +0000
+ | | : summary: (25) merge one known; far left
+ | | :
+ | o : changeset: 24:a9c19a3d96b7
+ | |\ \ parent: 0:e6eb3150255d
+ | | ~ : parent: 23:a01cddf0766d
+ | | : user: test
+ | | : date: Thu Jan 01 00:00:24 1970 +0000
+ | | : summary: (24) merge one known; immediate right
+ | | /
+ | o : changeset: 23:a01cddf0766d
+ | |\ \ parent: 1:6db2ef61d156
+ | | ~ : parent: 22:e0d9cccacb5d
+ | | : user: test
+ | | : date: Thu Jan 01 00:00:23 1970 +0000
+ | | : summary: (23) merge one known; immediate left
+ | | /
+ | o : changeset: 22:e0d9cccacb5d
+ |/:/ parent: 18:1aa84d96232a
+ | : parent: 21:d42a756af44d
+ | : user: test
+ | : date: Thu Jan 01 00:00:22 1970 +0000
+ | : summary: (22) merge two known; one far left, one far right
+ | :
+ | o changeset: 21:d42a756af44d
+ | |\ parent: 19:31ddc2c1573b
+ | | | parent: 20:d30ed6450e32
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:21 1970 +0000
+ | | | summary: (21) expand
+ | | |
+ +---o changeset: 20:d30ed6450e32
+ | | | parent: 0:e6eb3150255d
+ | | ~ parent: 18:1aa84d96232a
+ | | user: test
+ | | date: Thu Jan 01 00:00:20 1970 +0000
+ | | summary: (20) merge two known; two far right
+ | |
+ | o changeset: 19:31ddc2c1573b
+ | |\ parent: 15:1dda3f72782d
+ | | | parent: 17:44765d7c06e0
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:19 1970 +0000
+ | | | summary: (19) expand
+ | | |
+ o | | changeset: 18:1aa84d96232a
+ |\| | parent: 1:6db2ef61d156
+ ~ | | parent: 15:1dda3f72782d
+ | | user: test
+ | | date: Thu Jan 01 00:00:18 1970 +0000
+ | | summary: (18) merge two known; two far left
+ / /
+ | o changeset: 17:44765d7c06e0
+ | |\ parent: 12:86b91144a6e9
+ | | | parent: 16:3677d192927d
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:17 1970 +0000
+ | | | summary: (17) expand
+ | | |
+ | | o changeset: 16:3677d192927d
+ | | |\ parent: 0:e6eb3150255d
+ | | ~ ~ parent: 1:6db2ef61d156
+ | | user: test
+ | | date: Thu Jan 01 00:00:16 1970 +0000
+ | | summary: (16) merge two known; one immediate right, one near right
+ | |
+ o | changeset: 15:1dda3f72782d
+ |\ \ parent: 13:22d8966a97e3
+ | | | parent: 14:8eac370358ef
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:15 1970 +0000
+ | | | summary: (15) expand
+ | | |
+ | o | changeset: 14:8eac370358ef
+ | |\| parent: 0:e6eb3150255d
+ | ~ | parent: 12:86b91144a6e9
+ | | user: test
+ | | date: Thu Jan 01 00:00:14 1970 +0000
+ | | summary: (14) merge two known; one immediate right, one far right
+ | /
+ o | changeset: 13:22d8966a97e3
+ |\ \ parent: 9:7010c0af0a35
+ | | | parent: 11:832d76e6bdf2
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:13 1970 +0000
+ | | | summary: (13) expand
+ | | |
+ +---o changeset: 12:86b91144a6e9
+ | | | parent: 1:6db2ef61d156
+ | | ~ parent: 9:7010c0af0a35
+ | | user: test
+ | | date: Thu Jan 01 00:00:12 1970 +0000
+ | | summary: (12) merge two known; one immediate right, one far left
+ | |
+ | o changeset: 11:832d76e6bdf2
+ | |\ parent: 6:b105a072e251
+ | | | parent: 10:74c64d036d72
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:11 1970 +0000
+ | | | summary: (11) expand
+ | | |
+ | | o changeset: 10:74c64d036d72
+ | |/| parent: 0:e6eb3150255d
+ | | ~ parent: 6:b105a072e251
+ | | user: test
+ | | date: Thu Jan 01 00:00:10 1970 +0000
+ | | summary: (10) merge two known; one immediate left, one near right
+ | |
+ o | changeset: 9:7010c0af0a35
+ |\ \ parent: 7:b632bb1b1224
+ | | | parent: 8:7a0b11f71937
+ | | | user: test
+ | | | date: Thu Jan 01 00:00:09 1970 +0000
+ | | | summary: (9) expand
+ | | |
+ | o | changeset: 8:7a0b11f71937
+ |/| | parent: 0:e6eb3150255d
+ | ~ | parent: 7:b632bb1b1224
+ | | user: test
+ | | date: Thu Jan 01 00:00:08 1970 +0000
+ | | summary: (8) merge two known; one immediate left, one far right
+ | /
+ o | changeset: 7:b632bb1b1224
+ |\ \ parent: 2:3d9a33b8d1e1
+ | ~ | parent: 5:4409d547b708
+ | | user: test
+ | | date: Thu Jan 01 00:00:07 1970 +0000
+ | | summary: (7) expand
+ | /
+ | o changeset: 6:b105a072e251
+ |/| parent: 2:3d9a33b8d1e1
+ | ~ parent: 5:4409d547b708
+ | user: test
+ | date: Thu Jan 01 00:00:06 1970 +0000
+ | summary: (6) merge two known; one immediate left, one far left
+ |
+ o changeset: 5:4409d547b708
+ |\ parent: 3:27eef8ed80b4
+ | ~ parent: 4:26a8bac39d9f
+ | user: test
+ | date: Thu Jan 01 00:00:05 1970 +0000
+ | summary: (5) expand
+ |
+ o changeset: 4:26a8bac39d9f
+ |\ parent: 1:6db2ef61d156
+ ~ ~ parent: 3:27eef8ed80b4
+ user: test
+ date: Thu Jan 01 00:00:04 1970 +0000
+ summary: (4) merge two known; one immediate left, one immediate right
+
+
$ cd ..
Change graph shorten, test better with graphstyle.missing not none