Submitter | Martijn Pieters |
---|---|
Date | March 4, 2016, 8:47 p.m. |
Message ID | <794d4e68aa4fcfc2da23.1457124425@mjpieters-mbp> |
Download | mbox | patch |
Permalink | /patch/13609/ |
State | Changes Requested |
Delegated to: | Matt Mackall |
Headers | show |
Comments
Could you provide some examples in the commit message, or an additional email with a link to a paste so we can see what the results look like? It's hard to give feedback on the output with only the test patches to go by. I'm worried that in smartlog all the lines will be dotted, which will make their presence distracting and less informative. For the smartlog functionality that injects extra nodes, what's the plan there? On 3/4/16 12:47 PM, Martijn Pieters wrote: > # HG changeset patch > # User Martijn Pieters <mjpieters@fb.com> > # Date 1457102672 0 > # Fri Mar 04 14:44:32 2016 +0000 > # Node ID 794d4e68aa4fcfc2da23bfd71ba1294eb82e37c3 > # Parent ddeb44b0971f0c34b23f5f541c5d9a0b8c6c5892 > graphmod: use different styles for different edge types > > Rather than always draw edges as solid lines, use dotted lines for edges that > do not connect to a parent, and dashed lines when connecting to a grandparent > (implying missing nodes in between). > > This is part of the work towards moving smartlog upstream; currently smartlog > injects extra nodes into the graph to indicate grandparent relationships (nodes > elided). > > diff --git a/mercurial/graphmod.py b/mercurial/graphmod.py > --- a/mercurial/graphmod.py > +++ b/mercurial/graphmod.py > @@ -31,6 +31,7 @@ > PARENT = 'P' > GRANDPARENT = 'G' > MISSINGPARENT = 'M' > +EDGES = {PARENT: '|', GRANDPARENT: ':', MISSINGPARENT: '.'} > > def groupbranchiter(revs, parentsfunc, firstbranch=()): > """Yield revisions from heads to roots one (topo) branch at a time. > @@ -390,11 +391,13 @@ > knownparents.append(parent) > else: > newparents.append(parent) > + state['edges'][parent] = EDGES.get(ptype, '|') > > ncols = len(seen) > nextseen = seen[:] > nextseen[nodeidx:nodeidx + 1] = newparents > - edges = [(nodeidx, nextseen.index(p)) for p in knownparents if p != nullrev] > + edges = [(nodeidx, nextseen.index(p)) > + for p in knownparents if p != nullrev] > > while len(newparents) > 2: > # ascii() only knows how to add or remove a single column between two > @@ -418,6 +421,8 @@ > edges.append((nodeidx, nodeidx + 1)) > nmorecols = len(nextseen) - ncols > seen[:] = nextseen > + # remove current node from edge characters, no longer needed > + state['edges'].pop(rev, None) > yield (type, char, lines, (nodeidx, edges, ncols, nmorecols)) > > def _fixlongrightedges(edges): > @@ -426,27 +431,28 @@ > edges[i] = (start, end + 1) > > def _getnodelineedgestail( > - node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail): > - if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0: > + echars, idx, pidx, ncols, coldiff, pdiff, fix_tail): > + if fix_tail and coldiff == pdiff and coldiff != 0: > # Still going in the same non-vertical direction. > - if n_columns_diff == -1: > - start = max(node_index + 1, p_node_index) > - tail = ["|", " "] * (start - node_index - 1) > - tail.extend(["/", " "] * (n_columns - start)) > + if coldiff == -1: > + start = max(idx + 1, pidx) > + tail = echars[idx * 2:(start - 1) * 2] > + tail.extend(["/", " "] * (ncols - start)) > return tail > else: > - return ["\\", " "] * (n_columns - node_index - 1) > + return ["\\", " "] * (ncols - idx - 1) > else: > - return ["|", " "] * (n_columns - node_index - 1) > + remainder = (ncols - idx - 1) > + return echars[-(remainder * 2):] if remainder > 0 else [] > > -def _drawedges(edges, nodeline, interline): > +def _drawedges(echars, edges, nodeline, interline): > for (start, end) in edges: > if start == end + 1: > interline[2 * end + 1] = "/" > elif start == end - 1: > interline[2 * start + 1] = "\\" > elif start == end: > - interline[2 * start] = "|" > + interline[2 * start] = echars[2 * start] > else: > if 2 * end >= len(nodeline): > continue > @@ -457,26 +463,29 @@ > if nodeline[i] != "+": > nodeline[i] = "-" > > -def _getpaddingline(ni, n_columns, edges): > - line = [] > - line.extend(["|", " "] * ni) > - if (ni, ni - 1) in edges or (ni, ni) in edges: > - # (ni, ni - 1) (ni, ni) > +def _getpaddingline(echars, idx, ncols, edges): > + # all edges up to the current node > + line = echars[:idx * 2] > + # an edge for the current node, if there is one > + if (idx, idx - 1) in edges or (idx, idx) in edges: > + # (idx, idx - 1) (idx, idx) > # | | | | | | | | > # +---o | | o---+ > - # | | c | | c | | > + # | | X | | X | | > # | |/ / | |/ / > # | | | | | | > - c = "|" > + line.extend(echars[idx * 2:(idx + 1) * 2]) > else: > - c = " " > - line.extend([c, " "]) > - line.extend(["|", " "] * (n_columns - ni - 1)) > + line.extend(' ') > + # all edges to the right of the current node > + remainder = ncols - idx - 1 > + if remainder > 0: > + line.extend(echars[-(remainder * 2):]) > return line > > def asciistate(): > """returns the initial value for the "state" argument to ascii()""" > - return {'seen': [], 'lastcoldiff': 0, 'lastindex': 0} > + return {'seen': [], 'edges': {}, 'lastcoldiff': 0, 'lastindex': 0} > > def ascii(ui, state, type, char, text, coldata): > """prints an ASCII graph of the DAG > @@ -498,9 +507,15 @@ > in the current revision. That is: -1 means one column removed; > 0 means no columns added or removed; 1 means one column added. > """ > - > idx, edges, ncols, coldiff = coldata > assert -2 < coldiff < 2 > + > + edgemap, seen = state['edges'], state['seen'] > + # Be tolerant of history issues; make sure we have at least ncols + coldiff > + # elements to work with. See test-glog.t for broken history test cases. > + echars = [c for p in seen for c in (edgemap.get(p, '|'), ' ')] > + echars.extend(('|', ' ') * max(ncols + coldiff - len(seen), 0)) > + > if coldiff == -1: > # Transform > # > @@ -530,35 +545,33 @@ > fix_nodeline_tail = len(text) <= 2 and not add_padding_line > > # nodeline is the line containing the node character (typically o) > - nodeline = ["|", " "] * idx > + nodeline = echars[:idx * 2] > nodeline.extend([char, " "]) > > nodeline.extend( > - _getnodelineedgestail(idx, state['lastindex'], ncols, coldiff, > - state['lastcoldiff'], fix_nodeline_tail)) > + _getnodelineedgestail( > + echars, idx, state['lastindex'], ncols, coldiff, > + state['lastcoldiff'], fix_nodeline_tail)) > > # shift_interline is the line containing the non-vertical > # edges between this entry and the next > - shift_interline = ["|", " "] * idx > + shift_interline = echars[:idx * 2] > + shift_interline.extend(' ' * (2 + coldiff)) > + count = ncols - idx - 1 > if coldiff == -1: > - n_spaces = 1 > - edge_ch = "/" > + shift_interline.extend('/ ' * count) > elif coldiff == 0: > - n_spaces = 2 > - edge_ch = "|" > + shift_interline.extend(echars[(idx + 1) * 2:ncols * 2]) > else: > - n_spaces = 3 > - edge_ch = "\\" > - shift_interline.extend(n_spaces * [" "]) > - shift_interline.extend([edge_ch, " "] * (ncols - idx - 1)) > + shift_interline.extend(r'\ ' * count) > > # draw edges from the current node to its parents > - _drawedges(edges, nodeline, shift_interline) > + _drawedges(echars, edges, nodeline, shift_interline) > > # lines is the list of all graph lines to print > lines = [nodeline] > if add_padding_line: > - lines.append(_getpaddingline(idx, ncols, edges)) > + lines.append(_getpaddingline(echars, idx, ncols, edges)) > lines.append(shift_interline) > > # make sure that there are as many graph lines as there are > @@ -566,7 +579,7 @@ > while len(text) < len(lines): > text.append("") > if len(lines) < len(text): > - extra_interline = ["|", " "] * (ncols + coldiff) > + extra_interline = echars[:(ncols + coldiff) * 2] > while len(lines) < len(text): > lines.append(extra_interline) > > diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t > --- a/tests/test-commit-amend.t > +++ b/tests/test-commit-amend.t > @@ -539,11 +539,11 @@ > | babar > | > | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test > - | | fork > - | | > - o | 11 3334b7925910 1970-01-01 00:00 +0000 test > - | | a'' > - | | > + | . fork > + | . > + o . 11 3334b7925910 1970-01-01 00:00 +0000 test > + . . a'' > + . . > $ hg log -Gl 4 --hidden --style=compact > @ 14[tip]:11 b650e6ee8614 1970-01-01 00:00 +0000 test > | babar > @@ -552,11 +552,11 @@ > |/ amend for phase > | > | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test > - | | fork > - | | > - o | 11 3334b7925910 1970-01-01 00:00 +0000 test > - | | a'' > - | | > + | . fork > + | . > + o . 11 3334b7925910 1970-01-01 00:00 +0000 test > + . . a'' > + . . > > Amend with files changes > > @@ -579,11 +579,11 @@ > |/ amend for phase > | > | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test > - | | fork > - | | > - o | 11 3334b7925910 1970-01-01 00:00 +0000 test > - | | a'' > - | | > + | . fork > + | . > + o . 11 3334b7925910 1970-01-01 00:00 +0000 test > + . . a'' > + . . > > > Test that amend does not make it easy to create obsolescence cycle > diff --git a/tests/test-convert-hg-sink.t b/tests/test-convert-hg-sink.t > --- a/tests/test-convert-hg-sink.t > +++ b/tests/test-convert-hg-sink.t > @@ -370,7 +370,7 @@ > | o 7 e6d364a69ff1 (draft) "change in dest" files: dest > |/ > o 6 0613c8e59a3d (public) "6: change a" files: a > - | > + . > $ cd .. > > $ hg convert --filemap filemap source dest --config convert.hg.revs=3: > diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t > --- a/tests/test-copy-move-merge.t > +++ b/tests/test-copy-move-merge.t > @@ -156,11 +156,11 @@ > > $ hg log -G -f b > @ changeset: 3:76024fb4b05b > - | tag: tip > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: copy a->b (2) > - | > + : tag: tip > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: copy a->b (2) > + : > o changeset: 0:ac82d8b1f7c4 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > diff --git a/tests/test-glog-topological.t b/tests/test-glog-topological.t > --- a/tests/test-glog-topological.t > +++ b/tests/test-glog-topological.t > @@ -66,11 +66,11 @@ > o 8 > | > o 3 > - | > + : > o 1 > | > | o 7 > - | | > + | : > | o 5 > | | > | o 4 > diff --git a/tests/test-glog.t b/tests/test-glog.t > --- a/tests/test-glog.t > +++ b/tests/test-glog.t > @@ -940,193 +940,193 @@ > $ hg log -G -r 'file("a")' -m > 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: 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: 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: 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 > - | | | | | > + | | . . : 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: 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 > - | | | | | | > + | | . . . : 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: 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 > - | | | | | | > + | . . . : 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 > - | | | | | | > + | . . . | 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: 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 > - | | | | | | > + . . . | | 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 > - | | | | | | > + . . . | | 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 > - | | | | | | > + . . . | |/ 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 > - | | | | | | > + . . . | |/ 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 > - | | | | | > + . . . |/ / 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 > + . . . . . > > > Empty revision range - display nothing: > @@ -1139,20 +1139,20 @@ > From outer space: > $ hg log -G -l1 repo > @ changeset: 34:fea3ac5810e0 > - | tag: tip > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > + . tag: tip > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > $ hg log -G -l1 repo/a > @ changeset: 34:fea3ac5810e0 > - | tag: tip > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > + . tag: tip > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > $ hg log -G -l1 repo/missing > > #endif > @@ -1176,10 +1176,10 @@ > | summary: more > | > o changeset: 1:5ac72c0599bf > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: two > - | > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: two > + . > > Issue1896: File log with explicit style > $ hg log -G --style=default one > @@ -1277,17 +1277,17 @@ > $ hg ci -Aqm0 > $ hg log -G -l2 a > o changeset: 34:fea3ac5810e0 > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > - | o changeset: 33:68608f5145f9 > - | | parent: 18:1aa84d96232a > - | | user: test > - | | date: Thu Jan 01 00:00:33 1970 +0000 > - | | summary: (33) head > - | | > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > + . o changeset: 33:68608f5145f9 > + . . parent: 18:1aa84d96232a > + . . user: test > + . . date: Thu Jan 01 00:00:33 1970 +0000 > + . . summary: (33) head > + . . > > File + limit + -ra:b, (b - a) < limit: > $ hg log -G -l3000 -r32:tip a > @@ -1298,67 +1298,67 @@ > | summary: (34) head > | > | o changeset: 33:68608f5145f9 > - | | parent: 18:1aa84d96232a > - | | user: test > - | | date: Thu Jan 01 00:00:33 1970 +0000 > - | | summary: (33) head > - | | > - o | changeset: 32:d06dffa21a31 > - |\ \ parent: 27:886ed638191b > - | | | parent: 31:621d83e11f67 > - | | | user: test > - | | | date: Thu Jan 01 00:00:32 1970 +0000 > - | | | summary: (32) expand > - | | | > + | . parent: 18:1aa84d96232a > + | . user: test > + | . date: Thu Jan 01 00:00:33 1970 +0000 > + | . summary: (33) head > + | . > + o . changeset: 32:d06dffa21a31 > + .\ \ parent: 27:886ed638191b > + . . . parent: 31:621d83e11f67 > + . . . user: test > + . . . date: Thu Jan 01 00:00:32 1970 +0000 > + . . . summary: (32) expand > + . . . > > Point out a common and an uncommon unshown parent > > $ hg log -G -r 'rev(8) or rev(9)' > 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 > - | | > + | . 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 > + . . > > File + limit + -ra:b, b < tip: > > $ hg log -G -l1 -r32:34 a > o changeset: 34:fea3ac5810e0 > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > > file(File) + limit + -ra:b, b < tip: > > $ hg log -G -l1 -r32:34 -r 'file("a")' > o changeset: 34:fea3ac5810e0 > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > > limit(file(File) and a::b), b < tip: > > $ hg log -G -r 'limit(file("a") and 32::34, 1)' > o changeset: 32:d06dffa21a31 > - |\ parent: 27:886ed638191b > - | | parent: 31:621d83e11f67 > - | | user: test > - | | date: Thu Jan 01 00:00:32 1970 +0000 > - | | summary: (32) expand > - | | > + .\ parent: 27:886ed638191b > + . . parent: 31:621d83e11f67 > + . . user: test > + . . date: Thu Jan 01 00:00:32 1970 +0000 > + . . summary: (32) expand > + . . > > File + limit + -ra:b, b < tip: > > @@ -1368,17 +1368,17 @@ > > $ hg log -G -l10 -r33:34 a > o changeset: 34:fea3ac5810e0 > - | parent: 32:d06dffa21a31 > - | user: test > - | date: Thu Jan 01 00:00:34 1970 +0000 > - | summary: (34) head > - | > - | o changeset: 33:68608f5145f9 > - | | parent: 18:1aa84d96232a > - | | user: test > - | | date: Thu Jan 01 00:00:33 1970 +0000 > - | | summary: (33) head > - | | > + . parent: 32:d06dffa21a31 > + . user: test > + . date: Thu Jan 01 00:00:34 1970 +0000 > + . summary: (34) head > + . > + . o changeset: 33:68608f5145f9 > + . . parent: 18:1aa84d96232a > + . . user: test > + . . date: Thu Jan 01 00:00:33 1970 +0000 > + . . summary: (33) head > + . . > > Do not crash or produce strange graphs if history is buggy > > @@ -1408,18 +1408,18 @@ > | summary: (34) head > | > | o changeset: 33:68608f5145f9 > - | | parent: 18:1aa84d96232a > - | | user: test > - | | date: Thu Jan 01 00:00:33 1970 +0000 > - | | summary: (33) head > - | | > - o | changeset: 32:d06dffa21a31 > - |\ \ parent: 27:886ed638191b > - | | | parent: 31:621d83e11f67 > - | | | user: test > - | | | date: Thu Jan 01 00:00:32 1970 +0000 > - | | | summary: (32) expand > - | | | > + | . parent: 18:1aa84d96232a > + | . user: test > + | . date: Thu Jan 01 00:00:33 1970 +0000 > + | . summary: (33) head > + | . > + o . changeset: 32:d06dffa21a31 > + .\ \ parent: 27:886ed638191b > + . . . parent: 31:621d83e11f67 > + . . . user: test > + . . . date: Thu Jan 01 00:00:32 1970 +0000 > + . . . summary: (32) expand > + . . . > > Test log -G options > > @@ -1796,8 +1796,8 @@ > $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n' > @ 6 merge 5 and 4 > |\ > - o | 5 add another e > - | | > + o . 5 add another e > + . . > > Test --copies > > @@ -1875,24 +1875,24 @@ > $ hg up -q 3 > $ hg log -G --git --patch b > o changeset: 1:216d4c92cf98 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: copy a b > - | > - | diff --git a/a b/b > - | copy from a > - | copy to b > - | > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: copy a b > + . > + . diff --git a/a b/b > + . copy from a > + . copy to b > + . > > $ hg log -G --git --stat b > o changeset: 1:216d4c92cf98 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: copy a b > - | > - | b | 0 > - | 1 files changed, 0 insertions(+), 0 deletions(-) > - | > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: copy a b > + . > + . b | 0 > + . 1 files changed, 0 insertions(+), 0 deletions(-) > + . > > $ hg log -G --git --patch --follow b > o changeset: 1:216d4c92cf98 > @@ -1939,32 +1939,32 @@ > $ hg log -G --git --patch --follow-first e > @ changeset: 6:fc281d8ff18d > |\ tag: tip > - | | parent: 5:99b31f1c2782 > - | | parent: 4:17d952250a9d > - | | user: test > - | | date: Thu Jan 01 00:00:00 1970 +0000 > - | | summary: merge 5 and 4 > - | | > - | | diff --git a/e b/e > - | | --- a/e > - | | +++ b/e > - | | @@ -1,1 +1,1 @@ > - | | -ee > - | | +merge > - | | > - o | changeset: 5:99b31f1c2782 > - | | parent: 3:5918b8d165d1 > - | | user: test > - | | date: Thu Jan 01 00:00:00 1970 +0000 > - | | summary: add another e > - | | > - | | diff --git a/e b/e > - | | new file mode 100644 > - | | --- /dev/null > - | | +++ b/e > - | | @@ -0,0 +1,1 @@ > - | | +ee > - | | > + | . parent: 5:99b31f1c2782 > + | . parent: 4:17d952250a9d > + | . user: test > + | . date: Thu Jan 01 00:00:00 1970 +0000 > + | . summary: merge 5 and 4 > + | . > + | . diff --git a/e b/e > + | . --- a/e > + | . +++ b/e > + | . @@ -1,1 +1,1 @@ > + | . -ee > + | . +merge > + | . > + o . changeset: 5:99b31f1c2782 > + . . parent: 3:5918b8d165d1 > + . . user: test > + . . date: Thu Jan 01 00:00:00 1970 +0000 > + . . summary: add another e > + . . > + . . diff --git a/e b/e > + . . new file mode 100644 > + . . --- /dev/null > + . . +++ b/e > + . . @@ -0,0 +1,1 @@ > + . . +ee > + . . > > Test old-style --rev > > @@ -2384,7 +2384,7 @@ > o 2147483647:ffffffffffff > | > @ 3:5918b8d165d1 > - | > + . > > node template with changeset_printer: > > @@ -2393,8 +2393,8 @@ > | > 6 6:fc281d8ff18d > |\ > - 5 | 5:99b31f1c2782 > - | | > + 5 . 5:99b31f1c2782 > + . . > > node template with changeset_templater (shared cache variable): > > @@ -2404,7 +2404,7 @@ > | > # 6 foo-bar+0 > |\ > - o | 5 null+5 > - | | > + o . 5 null+5 > + . . > > $ cd .. > diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t > --- a/tests/test-histedit-arguments.t > +++ b/tests/test-histedit-arguments.t > @@ -123,7 +123,7 @@ > o 3 c8e6 four > | > o 2 eb57 three > - | > + . > $ HGEDITOR=cat hg histedit -r 4 --commands - << EOF > > edit 08d98a8350f3 4 five > > EOF > @@ -151,7 +151,7 @@ > | o 3 c8e6 four > |/ > o 2 eb57 three > - | > + . > > $ hg unbundle -q $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-backup.hg > $ hg strip -q -r f5ed --config extensions.strip= > diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t > --- a/tests/test-largefiles-misc.t > +++ b/tests/test-largefiles-misc.t > @@ -472,11 +472,11 @@ > > $ hg log -G anotherlarge > @ changeset: 1:9627a577c5e9 > - | tag: tip > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: anotherlarge > - | > + . tag: tip > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: anotherlarge > + . > > $ hg log glob:another* > changeset: 1:9627a577c5e9 > @@ -488,7 +488,7 @@ > $ hg --debug log -T '{rev}: {desc}\n' -G glob:another* > updated patterns: ['glob:../.hglf/sub/another*', 'glob:another*'] > @ 1: anotherlarge > - | > + . > > #if no-msys > $ hg --debug log -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys > @@ -498,7 +498,7 @@ > $ hg --debug log -G -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys > updated patterns: ['glob:../.hglf/sub/another*'] > @ 1: anotherlarge > - | > + . > #endif > > $ echo more >> anotherlarge > @@ -533,11 +533,11 @@ > > $ hg log -G glob:**another* > @ changeset: 1:9627a577c5e9 > - | tag: tip > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: anotherlarge > - | > + . tag: tip > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: anotherlarge > + . > > $ cd .. > > diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t > --- a/tests/test-largefiles.t > +++ b/tests/test-largefiles.t > @@ -930,7 +930,7 @@ > 7:daea875e9014 > $ hg log -Gqf sub2/large7 > @ 7:daea875e9014 > - | > + . > $ cd .. > > Test log from outside repo > @@ -1285,13 +1285,13 @@ > 4:74c02385b94c move files > $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub/large4 > o 8:a381d2c8c80e modify normal file and largefile in repo b > - | > + : > o 6:4355d653f84f edit files yet again > | > o 5:9d5af5072dbd edit files again > | > o 4:74c02385b94c move files > - | > + . > $ hg log --template '{rev}:{node|short} {desc|firstline}\n' sub/large4 > 8:a381d2c8c80e modify normal file and largefile in repo b > 6:4355d653f84f edit files yet again > @@ -1299,13 +1299,13 @@ > 4:74c02385b94c move files > $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub/large4 > o 8:a381d2c8c80e modify normal file and largefile in repo b > - | > + : > o 6:4355d653f84f edit files yet again > | > o 5:9d5af5072dbd edit files again > | > o 4:74c02385b94c move files > - | > + . > > - .hglf only matches largefiles, without .hglf it matches 9 bco sub/normal > $ hg log --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub > @@ -1317,13 +1317,13 @@ > 0:30d30fe6a5be add files > $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub > o 8:a381d2c8c80e modify normal file and largefile in repo b > - | > + : > o 6:4355d653f84f edit files yet again > | > o 5:9d5af5072dbd edit files again > | > o 4:74c02385b94c move files > - | > + : > o 1:ce8896473775 edit files > | > o 0:30d30fe6a5be add files > @@ -1340,13 +1340,13 @@ > @ 9:598410d3eb9a modify normal file largefile in repo d > | > o 8:a381d2c8c80e modify normal file and largefile in repo b > - | > + : > o 6:4355d653f84f edit files yet again > | > o 5:9d5af5072dbd edit files again > | > o 4:74c02385b94c move files > - | > + : > o 1:ce8896473775 edit files > | > o 0:30d30fe6a5be add files > @@ -1364,13 +1364,13 @@ > @ 9:598410d3eb9a modify normal file largefile in repo d > | > o 8:a381d2c8c80e modify normal file and largefile in repo b > - | > + : > o 6:4355d653f84f edit files yet again > | > o 5:9d5af5072dbd edit files again > | > o 4:74c02385b94c move files > - | > + : > o 1:ce8896473775 edit files > | > o 0:30d30fe6a5be add files > diff --git a/tests/test-log.t b/tests/test-log.t > --- a/tests/test-log.t > +++ b/tests/test-log.t > @@ -1970,10 +1970,10 @@ > | summary: content3 > | > o changeset: 3:15b2327059e5 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content2 > - | > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content2 > + : > o changeset: 0:ae0a3c9f9e95 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > @@ -1985,16 +1985,16 @@ > > $ hg log -G a > @ changeset: 4:50b9b36e9c5d > - | tag: tip > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content3 > - | > - | o changeset: 1:2294ae80ad84 > - |/ user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content2 > - | > + : tag: tip > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content3 > + : > + : o changeset: 1:2294ae80ad84 > + :/ user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content2 > + : > o changeset: 0:ae0a3c9f9e95 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > @@ -2008,10 +2008,10 @@ > 1 files updated, 0 files merged, 0 files removed, 0 files unresolved > $ hg log -Gf a > @ changeset: 3:15b2327059e5 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content2 > - | > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content2 > + : > o changeset: 0:ae0a3c9f9e95 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > @@ -2059,10 +2059,10 @@ > | summary: content3 > | > @ changeset: 3:15b2327059e5 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content2 > - | > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content2 > + : > o changeset: 0:ae0a3c9f9e95 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > @@ -2076,11 +2076,11 @@ > $ hg debugobsolete 50b9b36e9c5df2c6fc6dcefa8ad0da929e84aed2 > $ hg log -G a > @ changeset: 3:15b2327059e5 > - | tag: tip > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: content2 > - | > + : tag: tip > + : user: test > + : date: Thu Jan 01 00:00:00 1970 +0000 > + : summary: content2 > + : > o changeset: 0:ae0a3c9f9e95 > user: test > date: Thu Jan 01 00:00:00 1970 +0000 > @@ -2132,18 +2132,18 @@ > > $ hg log -f -G b > @ changeset: 3:9bc8ce7f9356 > - | parent: 0:f7b1eb17ad24 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: 1 > - | > + . parent: 0:f7b1eb17ad24 > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: 1 > + . > $ hg log -G b > @ changeset: 3:9bc8ce7f9356 > - | parent: 0:f7b1eb17ad24 > - | user: test > - | date: Thu Jan 01 00:00:00 1970 +0000 > - | summary: 1 > - | > + . parent: 0:f7b1eb17ad24 > + . user: test > + . date: Thu Jan 01 00:00:00 1970 +0000 > + . summary: 1 > + . > $ cd .. > > Check proper report when the manifest changes but not the file issue4499 > diff --git a/tests/test-rebase-pull.t b/tests/test-rebase-pull.t > --- a/tests/test-rebase-pull.t > +++ b/tests/test-rebase-pull.t > @@ -91,7 +91,7 @@ > > $ hg tglog -l 1 > @ 2: 'R1' > - | > + . > > pull --rebase --update should ignore --update: > > @@ -111,7 +111,7 @@ > > $ hg tglog -l 1 > o 2: 'R1' > - | > + . > > $ cd .. > > diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t > --- a/tests/test-rebase-rename.t > +++ b/tests/test-rebase-rename.t > @@ -298,7 +298,7 @@ > o 3: 'File c created as copy of b and modified' > | > o 2: 'File b created as copy of a and modified' > - | > + : > o 0: 'File a created' > > Same steps as above, but with --collapse on rebase to make sure the > @@ -323,9 +323,9 @@ > > $ hg tglog --follow d > @ 3: 'Collapsed revision > - | * File b created as copy of a and modified > - | * File c created as copy of b and modified > - | * File d created as copy of c and modified' > + : * File b created as copy of a and modified > + : * File c created as copy of b and modified > + : * File d created as copy of c and modified' > o 0: 'File a created' > > > diff --git a/tests/test-shelve.t b/tests/test-shelve.t > --- a/tests/test-shelve.t > +++ b/tests/test-shelve.t > @@ -718,7 +718,7 @@ > 0 files updated, 0 files merged, 1 files removed, 0 files unresolved > $ hg log -G --template '{rev} {desc|firstline} {author}' -R bundle://.hg/shelved/default.hg -r 'bundle()' > o 4 changes to: commit stuff shelve@localhost > - | > + . > $ hg log -G --template '{rev} {desc|firstline} {author}' > @ 3 commit stuff test > | > > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=nuarHzhP1wi1T9iURRCj1A&m=XshBZtmCWRlCBvnJnmHoqLgrA58KJPxyQWIpLecUbtc&s=vhdYJ8eko-xSwUoKv0C9yMKQ3ncGIbmxcopziUK57gI&e=
On 8 March 2016 at 08:16, Durham Goode <durham@fb.com> wrote: > Could you provide some examples in the commit message, or an additional > email with a link to a paste so we can see what the results look like? It's > hard to give feedback on the output with only the test patches to go by. > I'm worried that in smartlog all the lines will be dotted, which will make > their presence distracting and less informative. > > For the smartlog functionality that injects extra nodes, what's the plan > there? Smartlog will no longer inject extra nodes. Instead of o 9974b8 danek remote/@ | tests: Solaris grep doesn't add a trailing newline when it's missing | . . | o 158bdc timeless @ stable | shelve: lowercase flag description | smartlog would show o 9974b8 danek remote/@ : tests: Solaris grep doesn't add a trailing newline when it's missing : o 158bdc timeless @ stable | shelve: lowercase flag description ~ (actual output from a hg sl command in my mercurial working copy, just the last two entries). The above shows both a grandparent relationship (where smartlog injected an extra node to render the two dots) and a missing parent relationship (where smartlog and hg log -G draw a line that just peters out). As for a larger example, this is a cut-down version of the test in test-glog.t; as it was originally before my changes: 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 | | | | | Changing the style of edge lines based on the relationship turns that into: 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 . . . . . So edges that lead to a grandparent (intermediate nodes are missing) are depicted using : lines. Edges to nodes that are not part of the graph at all are depicted as . lines. For example, node 27 is not part of the graph, but 21, an ancestor to 27, is, so the edge between 32 and 21 is drawn as a : dotted line. The same applies for node 18 between 21 and 22. Nodes 0, 1, 15, 17 and 29, are all missing from the graph, edges that try to connect to those are drawn as . dotted lines. The big win comes from then terminating missing-parent edges early: 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
On Fri, Mar 04, 2016 at 08:47:05PM +0000, Martijn Pieters wrote: > # HG changeset patch > # User Martijn Pieters <mjpieters@fb.com> > # Date 1457102672 0 > # Fri Mar 04 14:44:32 2016 +0000 > # Node ID 794d4e68aa4fcfc2da23bfd71ba1294eb82e37c3 > # Parent ddeb44b0971f0c34b23f5f541c5d9a0b8c6c5892 > graphmod: use different styles for different edge types Looks good to me, but I think we might want to flag this with (BC) for the poor souls that have been parsing our graph output? I know at least one pile of emacs lisp that does (monky). Matt?
Your change helps a bunch in the case where ancestors aren't present, but that's pretty rare in our code base at least (since we have very few merges). Here is the before and after smartlog output from my hg repo: https://bpaste.net/show/2093d7bad9c1 I actually find the dashed line detracts from the general glance-ability of the data, and am not sure we'd want to replace smartlog with this output just yet. Is there a config option to disable these line stylings? On 3/8/16 6:03 AM, Martijn Pieters wrote: > On 8 March 2016 at 08:16, Durham Goode <durham@fb.com> wrote: >> Could you provide some examples in the commit message, or an additional >> email with a link to a paste so we can see what the results look like? It's >> hard to give feedback on the output with only the test patches to go by. >> I'm worried that in smartlog all the lines will be dotted, which will make >> their presence distracting and less informative. >> >> For the smartlog functionality that injects extra nodes, what's the plan >> there? > Smartlog will no longer inject extra nodes. Instead of > > o 9974b8 danek remote/@ > | tests: Solaris grep doesn't add a trailing newline when it's missing > | > . > . > | > o 158bdc timeless @ stable > | shelve: lowercase flag description > | > > smartlog would show > > o 9974b8 danek remote/@ > : tests: Solaris grep doesn't add a trailing newline when it's missing > : > o 158bdc timeless @ stable > | shelve: lowercase flag description > ~ > > (actual output from a hg sl command in my mercurial working copy, just > the last two entries). The above shows both a grandparent relationship > (where smartlog injected an extra node to render the two dots) and a > missing parent relationship (where smartlog and hg log -G draw a line > that just peters out). > > As for a larger example, this is a cut-down version of the test in > test-glog.t; as it was originally before my changes: > > 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 > | | | | | > > Changing the style of edge lines based on the relationship turns that into: > > 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 > . . . . . > > So edges that lead to a grandparent (intermediate nodes are missing) > are depicted using : lines. Edges to nodes that are not part of the > graph at all are depicted as . lines. For example, node 27 is not part > of the graph, but 21, an ancestor to 27, is, so the edge between 32 > and 21 is drawn as a : dotted line. The same applies for node 18 > between 21 and 22. Nodes 0, 1, 15, 17 and 29, are all missing from the > graph, edges that try to connect to those are drawn as . dotted lines. > > The big win comes from then terminating missing-parent edges early: > > 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 > >
On 9 March 2016 at 04:42, Durham Goode <durham@fb.com> wrote: > Your change helps a bunch in the case where ancestors aren't present, but > that's pretty rare in our code base at least (since we have very few > merges). Here is the before and after smartlog output from my hg repo: > https://bpaste.net/show/2093d7bad9c1 > > I actually find the dashed line detracts from the general glance-ability > of the data, and am not sure we'd want to replace smartlog with this output > just yet. Is there a config option to disable these line stylings? How does it look to you if you replace colon (:) with exclamation mark (!)? Note: need to be a little careful with find/replace to avoid changing colons in the text. Personally, I don't like it, but it does give a more solid but broken line. Another idea - do we need the entire path showing the grandparent relationship? Would it be enough to just have it at the start (and probably end) of the path? @ 4932aa mjpieters : graphmod: end edges to missing parents early. | | o d01268 durham | : parsers: optimize filtered headrevs logic | | | | o 55f8ae durham | |/ branchmap: check node against changelog instead of repo | | | | o 54f93f durham prof | | | Add proftimer | | | +---o 8a40e9 durham | | branchmap: check node against nodemap instead of changelog (for perf) : | o | 5cef34 durham hgvip/release-2016-02-17 | | test: remove dependency on $PYTHONDIR | | o | 4f99a5 durham | | test: quick fix for test-hook | | o | 95bf01 quark fbcrew/@ | | chg: forward umask from client to server | | o | e48d77 quark | | chgserver: add setumask method | | and with merges: 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 | | 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 Tim Delaney
On 3/8/16 2:02 PM, Tim Delaney wrote: > On 9 March 2016 at 04:42, Durham Goode <durham@fb.com > <mailto:durham@fb.com>> wrote: > > Your change helps a bunch in the case where ancestors aren't > present, but that's pretty rare in our code base at least (since > we have very few merges). Here is the before and after smartlog > output from my hg repo: https://bpaste.net/show/2093d7bad9c1 > <https://urldefense.proofpoint.com/v2/url?u=https-3A__bpaste.net_show_2093d7bad9c1&d=CwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=nuarHzhP1wi1T9iURRCj1A&m=Ix7YLrzTSql7jLWOBs__ZDQLdJjoyuycoz3rbHzG16M&s=XWseVzXeEz1WRMYHFNEkVeXWNQ8rm7PMkOKRGdf50yg&e=> > > I actually find the dashed line detracts from the general > glance-ability of the data, and am not sure we'd want to replace > smartlog with this output just yet. Is there a config option to > disable these line stylings? > > > How does it look to you if you replace colon (:) with exclamation mark > (!)? Note: need to be a little careful with find/replace to avoid > changing colons in the text. Personally, I don't like it, but it does > give a more solid but broken line. Martijn tried it with a exclamation mark before (I saw an early prototype) and I think that was also not great (it was too subtle in some cases, and didn't really produce the dashed effect that would convey the not-my-parent notion). > > Another idea - do we need the entire path showing the grandparent > relationship? Would it be enough to just have it at the start (and > probably end) of the path? This is what smartlog does, to some degree. But smartlog inserts a full node (with no text) into the graph algorithm and draws an ellipsis on the line for that node. Having ':' in a couple spots on the line might be interesting. I'd probably not have the ':' as the first character in the line. Replacing the | on the blank line following the commit makes it obvious it's a break in the line that occurs just after the commit (having the : on the same line as some of the commit text drew my eye to that line and made me think the : was highlighting some aspect of that line. @ 4932aa mjpieters | graphmod: end edges to missing parents early. : | o d01268 durham | | parsers: optimize filtered headrevs logic | : | | o 55f8ae durham | |/ branchmap: check node against changelog instead of repo | : | | o | 5cef34 durham hgvip/release-2016-02-17 | | test: remove dependency on $PYTHONDIR | | o | 4f99a5 durham | | test: quick fix for test-hook | | o | 95bf01 quark fbcrew/@ | | chg: forward umask from client to server | | o | e48d77 quark | | chgserver: add setumask method | | and 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 | | 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
On 03/04/2016 08:47 PM, Martijn Pieters wrote: > # HG changeset patch > # User Martijn Pieters <mjpieters@fb.com> > # Date 1457102672 0 > # Fri Mar 04 14:44:32 2016 +0000 > # Node ID 794d4e68aa4fcfc2da23bfd71ba1294eb82e37c3 > # Parent ddeb44b0971f0c34b23f5f541c5d9a0b8c6c5892 > graphmod: use different styles for different edge types > > Rather than always draw edges as solid lines, use dotted lines for edges that > do not connect to a parent, and dashed lines when connecting to a grandparent > (implying missing nodes in between). > > This is part of the work towards moving smartlog upstream; currently smartlog > injects extra nodes into the graph to indicate grandparent relationships (nodes > elided). As durham mention, that would be nice to have an exemple output in the description. Can we have change for each relation types in different changeset? This would help discussion of each of them. I like the ":" for grandparent, but I'm not fan of using "." for missing parent. I feel like we should safe "." something more common/important like obsolescence relation. I like the fact we don't include the elypsis node. It allows a much more compact result.
On 03/08/2016 03:27 PM, Augie Fackler wrote: > On Fri, Mar 04, 2016 at 08:47:05PM +0000, Martijn Pieters wrote: >> # HG changeset patch >> # User Martijn Pieters <mjpieters@fb.com> >> # Date 1457102672 0 >> # Fri Mar 04 14:44:32 2016 +0000 >> # Node ID 794d4e68aa4fcfc2da23bfd71ba1294eb82e37c3 >> # Parent ddeb44b0971f0c34b23f5f541c5d9a0b8c6c5892 >> graphmod: use different styles for different edge types > > Looks good to me, but I think we might want to flag this with (BC) for > the poor souls that have been parsing our graph output? I know at > least one pile of emacs lisp that does (monky). Matt? Could we provide a way to expose the raw graph information in a machine friendly way? (-T json?, hg debuggraph?) so that we break these people once but we offer the migration to a nice a stable alternative? Martijn, do you have idea about how to do this? Cheers,
Patch
diff --git a/mercurial/graphmod.py b/mercurial/graphmod.py --- a/mercurial/graphmod.py +++ b/mercurial/graphmod.py @@ -31,6 +31,7 @@ PARENT = 'P' GRANDPARENT = 'G' MISSINGPARENT = 'M' +EDGES = {PARENT: '|', GRANDPARENT: ':', MISSINGPARENT: '.'} def groupbranchiter(revs, parentsfunc, firstbranch=()): """Yield revisions from heads to roots one (topo) branch at a time. @@ -390,11 +391,13 @@ knownparents.append(parent) else: newparents.append(parent) + state['edges'][parent] = EDGES.get(ptype, '|') ncols = len(seen) nextseen = seen[:] nextseen[nodeidx:nodeidx + 1] = newparents - edges = [(nodeidx, nextseen.index(p)) for p in knownparents if p != nullrev] + edges = [(nodeidx, nextseen.index(p)) + for p in knownparents if p != nullrev] while len(newparents) > 2: # ascii() only knows how to add or remove a single column between two @@ -418,6 +421,8 @@ edges.append((nodeidx, nodeidx + 1)) nmorecols = len(nextseen) - ncols seen[:] = nextseen + # remove current node from edge characters, no longer needed + state['edges'].pop(rev, None) yield (type, char, lines, (nodeidx, edges, ncols, nmorecols)) def _fixlongrightedges(edges): @@ -426,27 +431,28 @@ edges[i] = (start, end + 1) def _getnodelineedgestail( - node_index, p_node_index, n_columns, n_columns_diff, p_diff, fix_tail): - if fix_tail and n_columns_diff == p_diff and n_columns_diff != 0: + echars, idx, pidx, ncols, coldiff, pdiff, fix_tail): + if fix_tail and coldiff == pdiff and coldiff != 0: # Still going in the same non-vertical direction. - if n_columns_diff == -1: - start = max(node_index + 1, p_node_index) - tail = ["|", " "] * (start - node_index - 1) - tail.extend(["/", " "] * (n_columns - start)) + if coldiff == -1: + start = max(idx + 1, pidx) + tail = echars[idx * 2:(start - 1) * 2] + tail.extend(["/", " "] * (ncols - start)) return tail else: - return ["\\", " "] * (n_columns - node_index - 1) + return ["\\", " "] * (ncols - idx - 1) else: - return ["|", " "] * (n_columns - node_index - 1) + remainder = (ncols - idx - 1) + return echars[-(remainder * 2):] if remainder > 0 else [] -def _drawedges(edges, nodeline, interline): +def _drawedges(echars, edges, nodeline, interline): for (start, end) in edges: if start == end + 1: interline[2 * end + 1] = "/" elif start == end - 1: interline[2 * start + 1] = "\\" elif start == end: - interline[2 * start] = "|" + interline[2 * start] = echars[2 * start] else: if 2 * end >= len(nodeline): continue @@ -457,26 +463,29 @@ if nodeline[i] != "+": nodeline[i] = "-" -def _getpaddingline(ni, n_columns, edges): - line = [] - line.extend(["|", " "] * ni) - if (ni, ni - 1) in edges or (ni, ni) in edges: - # (ni, ni - 1) (ni, ni) +def _getpaddingline(echars, idx, ncols, edges): + # all edges up to the current node + line = echars[:idx * 2] + # an edge for the current node, if there is one + if (idx, idx - 1) in edges or (idx, idx) in edges: + # (idx, idx - 1) (idx, idx) # | | | | | | | | # +---o | | o---+ - # | | c | | c | | + # | | X | | X | | # | |/ / | |/ / # | | | | | | - c = "|" + line.extend(echars[idx * 2:(idx + 1) * 2]) else: - c = " " - line.extend([c, " "]) - line.extend(["|", " "] * (n_columns - ni - 1)) + line.extend(' ') + # all edges to the right of the current node + remainder = ncols - idx - 1 + if remainder > 0: + line.extend(echars[-(remainder * 2):]) return line def asciistate(): """returns the initial value for the "state" argument to ascii()""" - return {'seen': [], 'lastcoldiff': 0, 'lastindex': 0} + return {'seen': [], 'edges': {}, 'lastcoldiff': 0, 'lastindex': 0} def ascii(ui, state, type, char, text, coldata): """prints an ASCII graph of the DAG @@ -498,9 +507,15 @@ in the current revision. That is: -1 means one column removed; 0 means no columns added or removed; 1 means one column added. """ - idx, edges, ncols, coldiff = coldata assert -2 < coldiff < 2 + + edgemap, seen = state['edges'], state['seen'] + # Be tolerant of history issues; make sure we have at least ncols + coldiff + # elements to work with. See test-glog.t for broken history test cases. + echars = [c for p in seen for c in (edgemap.get(p, '|'), ' ')] + echars.extend(('|', ' ') * max(ncols + coldiff - len(seen), 0)) + if coldiff == -1: # Transform # @@ -530,35 +545,33 @@ fix_nodeline_tail = len(text) <= 2 and not add_padding_line # nodeline is the line containing the node character (typically o) - nodeline = ["|", " "] * idx + nodeline = echars[:idx * 2] nodeline.extend([char, " "]) nodeline.extend( - _getnodelineedgestail(idx, state['lastindex'], ncols, coldiff, - state['lastcoldiff'], fix_nodeline_tail)) + _getnodelineedgestail( + echars, idx, state['lastindex'], ncols, coldiff, + state['lastcoldiff'], fix_nodeline_tail)) # shift_interline is the line containing the non-vertical # edges between this entry and the next - shift_interline = ["|", " "] * idx + shift_interline = echars[:idx * 2] + shift_interline.extend(' ' * (2 + coldiff)) + count = ncols - idx - 1 if coldiff == -1: - n_spaces = 1 - edge_ch = "/" + shift_interline.extend('/ ' * count) elif coldiff == 0: - n_spaces = 2 - edge_ch = "|" + shift_interline.extend(echars[(idx + 1) * 2:ncols * 2]) else: - n_spaces = 3 - edge_ch = "\\" - shift_interline.extend(n_spaces * [" "]) - shift_interline.extend([edge_ch, " "] * (ncols - idx - 1)) + shift_interline.extend(r'\ ' * count) # draw edges from the current node to its parents - _drawedges(edges, nodeline, shift_interline) + _drawedges(echars, edges, nodeline, shift_interline) # lines is the list of all graph lines to print lines = [nodeline] if add_padding_line: - lines.append(_getpaddingline(idx, ncols, edges)) + lines.append(_getpaddingline(echars, idx, ncols, edges)) lines.append(shift_interline) # make sure that there are as many graph lines as there are @@ -566,7 +579,7 @@ while len(text) < len(lines): text.append("") if len(lines) < len(text): - extra_interline = ["|", " "] * (ncols + coldiff) + extra_interline = echars[:(ncols + coldiff) * 2] while len(lines) < len(text): lines.append(extra_interline) diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t --- a/tests/test-commit-amend.t +++ b/tests/test-commit-amend.t @@ -539,11 +539,11 @@ | babar | | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test - | | fork - | | - o | 11 3334b7925910 1970-01-01 00:00 +0000 test - | | a'' - | | + | . fork + | . + o . 11 3334b7925910 1970-01-01 00:00 +0000 test + . . a'' + . . $ hg log -Gl 4 --hidden --style=compact @ 14[tip]:11 b650e6ee8614 1970-01-01 00:00 +0000 test | babar @@ -552,11 +552,11 @@ |/ amend for phase | | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test - | | fork - | | - o | 11 3334b7925910 1970-01-01 00:00 +0000 test - | | a'' - | | + | . fork + | . + o . 11 3334b7925910 1970-01-01 00:00 +0000 test + . . a'' + . . Amend with files changes @@ -579,11 +579,11 @@ |/ amend for phase | | o 12:0 2647734878ef 1970-01-01 00:00 +0000 test - | | fork - | | - o | 11 3334b7925910 1970-01-01 00:00 +0000 test - | | a'' - | | + | . fork + | . + o . 11 3334b7925910 1970-01-01 00:00 +0000 test + . . a'' + . . Test that amend does not make it easy to create obsolescence cycle diff --git a/tests/test-convert-hg-sink.t b/tests/test-convert-hg-sink.t --- a/tests/test-convert-hg-sink.t +++ b/tests/test-convert-hg-sink.t @@ -370,7 +370,7 @@ | o 7 e6d364a69ff1 (draft) "change in dest" files: dest |/ o 6 0613c8e59a3d (public) "6: change a" files: a - | + . $ cd .. $ hg convert --filemap filemap source dest --config convert.hg.revs=3: diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t --- a/tests/test-copy-move-merge.t +++ b/tests/test-copy-move-merge.t @@ -156,11 +156,11 @@ $ hg log -G -f b @ changeset: 3:76024fb4b05b - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: copy a->b (2) - | + : tag: tip + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: copy a->b (2) + : o changeset: 0:ac82d8b1f7c4 user: test date: Thu Jan 01 00:00:00 1970 +0000 diff --git a/tests/test-glog-topological.t b/tests/test-glog-topological.t --- a/tests/test-glog-topological.t +++ b/tests/test-glog-topological.t @@ -66,11 +66,11 @@ o 8 | o 3 - | + : o 1 | | o 7 - | | + | : | o 5 | | | o 4 diff --git a/tests/test-glog.t b/tests/test-glog.t --- a/tests/test-glog.t +++ b/tests/test-glog.t @@ -940,193 +940,193 @@ $ hg log -G -r 'file("a")' -m 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: 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: 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: 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 - | | | | | + | | . . : 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: 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 - | | | | | | + | | . . . : 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: 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 - | | | | | | + | . . . : 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 - | | | | | | + | . . . | 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: 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 - | | | | | | + . . . | | 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 - | | | | | | + . . . | | 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 - | | | | | | + . . . | |/ 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 - | | | | | | + . . . | |/ 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 - | | | | | + . . . |/ / 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 + . . . . . Empty revision range - display nothing: @@ -1139,20 +1139,20 @@ From outer space: $ hg log -G -l1 repo @ changeset: 34:fea3ac5810e0 - | tag: tip - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | + . tag: tip + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . $ hg log -G -l1 repo/a @ changeset: 34:fea3ac5810e0 - | tag: tip - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | + . tag: tip + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . $ hg log -G -l1 repo/missing #endif @@ -1176,10 +1176,10 @@ | summary: more | o changeset: 1:5ac72c0599bf - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: two - | + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: two + . Issue1896: File log with explicit style $ hg log -G --style=default one @@ -1277,17 +1277,17 @@ $ hg ci -Aqm0 $ hg log -G -l2 a o changeset: 34:fea3ac5810e0 - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | - | o changeset: 33:68608f5145f9 - | | parent: 18:1aa84d96232a - | | user: test - | | date: Thu Jan 01 00:00:33 1970 +0000 - | | summary: (33) head - | | + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . + . o changeset: 33:68608f5145f9 + . . parent: 18:1aa84d96232a + . . user: test + . . date: Thu Jan 01 00:00:33 1970 +0000 + . . summary: (33) head + . . File + limit + -ra:b, (b - a) < limit: $ hg log -G -l3000 -r32:tip a @@ -1298,67 +1298,67 @@ | summary: (34) head | | o changeset: 33:68608f5145f9 - | | parent: 18:1aa84d96232a - | | user: test - | | date: Thu Jan 01 00:00:33 1970 +0000 - | | summary: (33) head - | | - o | changeset: 32:d06dffa21a31 - |\ \ parent: 27:886ed638191b - | | | parent: 31:621d83e11f67 - | | | user: test - | | | date: Thu Jan 01 00:00:32 1970 +0000 - | | | summary: (32) expand - | | | + | . parent: 18:1aa84d96232a + | . user: test + | . date: Thu Jan 01 00:00:33 1970 +0000 + | . summary: (33) head + | . + o . changeset: 32:d06dffa21a31 + .\ \ parent: 27:886ed638191b + . . . parent: 31:621d83e11f67 + . . . user: test + . . . date: Thu Jan 01 00:00:32 1970 +0000 + . . . summary: (32) expand + . . . Point out a common and an uncommon unshown parent $ hg log -G -r 'rev(8) or rev(9)' 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 - | | + | . 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 + . . File + limit + -ra:b, b < tip: $ hg log -G -l1 -r32:34 a o changeset: 34:fea3ac5810e0 - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . file(File) + limit + -ra:b, b < tip: $ hg log -G -l1 -r32:34 -r 'file("a")' o changeset: 34:fea3ac5810e0 - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . limit(file(File) and a::b), b < tip: $ hg log -G -r 'limit(file("a") and 32::34, 1)' o changeset: 32:d06dffa21a31 - |\ parent: 27:886ed638191b - | | parent: 31:621d83e11f67 - | | user: test - | | date: Thu Jan 01 00:00:32 1970 +0000 - | | summary: (32) expand - | | + .\ parent: 27:886ed638191b + . . parent: 31:621d83e11f67 + . . user: test + . . date: Thu Jan 01 00:00:32 1970 +0000 + . . summary: (32) expand + . . File + limit + -ra:b, b < tip: @@ -1368,17 +1368,17 @@ $ hg log -G -l10 -r33:34 a o changeset: 34:fea3ac5810e0 - | parent: 32:d06dffa21a31 - | user: test - | date: Thu Jan 01 00:00:34 1970 +0000 - | summary: (34) head - | - | o changeset: 33:68608f5145f9 - | | parent: 18:1aa84d96232a - | | user: test - | | date: Thu Jan 01 00:00:33 1970 +0000 - | | summary: (33) head - | | + . parent: 32:d06dffa21a31 + . user: test + . date: Thu Jan 01 00:00:34 1970 +0000 + . summary: (34) head + . + . o changeset: 33:68608f5145f9 + . . parent: 18:1aa84d96232a + . . user: test + . . date: Thu Jan 01 00:00:33 1970 +0000 + . . summary: (33) head + . . Do not crash or produce strange graphs if history is buggy @@ -1408,18 +1408,18 @@ | summary: (34) head | | o changeset: 33:68608f5145f9 - | | parent: 18:1aa84d96232a - | | user: test - | | date: Thu Jan 01 00:00:33 1970 +0000 - | | summary: (33) head - | | - o | changeset: 32:d06dffa21a31 - |\ \ parent: 27:886ed638191b - | | | parent: 31:621d83e11f67 - | | | user: test - | | | date: Thu Jan 01 00:00:32 1970 +0000 - | | | summary: (32) expand - | | | + | . parent: 18:1aa84d96232a + | . user: test + | . date: Thu Jan 01 00:00:33 1970 +0000 + | . summary: (33) head + | . + o . changeset: 32:d06dffa21a31 + .\ \ parent: 27:886ed638191b + . . . parent: 31:621d83e11f67 + . . . user: test + . . . date: Thu Jan 01 00:00:32 1970 +0000 + . . . summary: (32) expand + . . . Test log -G options @@ -1796,8 +1796,8 @@ $ hg log -G --follow-first e --template '{rev} {desc|firstline}\n' @ 6 merge 5 and 4 |\ - o | 5 add another e - | | + o . 5 add another e + . . Test --copies @@ -1875,24 +1875,24 @@ $ hg up -q 3 $ hg log -G --git --patch b o changeset: 1:216d4c92cf98 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: copy a b - | - | diff --git a/a b/b - | copy from a - | copy to b - | + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: copy a b + . + . diff --git a/a b/b + . copy from a + . copy to b + . $ hg log -G --git --stat b o changeset: 1:216d4c92cf98 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: copy a b - | - | b | 0 - | 1 files changed, 0 insertions(+), 0 deletions(-) - | + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: copy a b + . + . b | 0 + . 1 files changed, 0 insertions(+), 0 deletions(-) + . $ hg log -G --git --patch --follow b o changeset: 1:216d4c92cf98 @@ -1939,32 +1939,32 @@ $ hg log -G --git --patch --follow-first e @ changeset: 6:fc281d8ff18d |\ tag: tip - | | parent: 5:99b31f1c2782 - | | parent: 4:17d952250a9d - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | summary: merge 5 and 4 - | | - | | diff --git a/e b/e - | | --- a/e - | | +++ b/e - | | @@ -1,1 +1,1 @@ - | | -ee - | | +merge - | | - o | changeset: 5:99b31f1c2782 - | | parent: 3:5918b8d165d1 - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | summary: add another e - | | - | | diff --git a/e b/e - | | new file mode 100644 - | | --- /dev/null - | | +++ b/e - | | @@ -0,0 +1,1 @@ - | | +ee - | | + | . parent: 5:99b31f1c2782 + | . parent: 4:17d952250a9d + | . user: test + | . date: Thu Jan 01 00:00:00 1970 +0000 + | . summary: merge 5 and 4 + | . + | . diff --git a/e b/e + | . --- a/e + | . +++ b/e + | . @@ -1,1 +1,1 @@ + | . -ee + | . +merge + | . + o . changeset: 5:99b31f1c2782 + . . parent: 3:5918b8d165d1 + . . user: test + . . date: Thu Jan 01 00:00:00 1970 +0000 + . . summary: add another e + . . + . . diff --git a/e b/e + . . new file mode 100644 + . . --- /dev/null + . . +++ b/e + . . @@ -0,0 +1,1 @@ + . . +ee + . . Test old-style --rev @@ -2384,7 +2384,7 @@ o 2147483647:ffffffffffff | @ 3:5918b8d165d1 - | + . node template with changeset_printer: @@ -2393,8 +2393,8 @@ | 6 6:fc281d8ff18d |\ - 5 | 5:99b31f1c2782 - | | + 5 . 5:99b31f1c2782 + . . node template with changeset_templater (shared cache variable): @@ -2404,7 +2404,7 @@ | # 6 foo-bar+0 |\ - o | 5 null+5 - | | + o . 5 null+5 + . . $ cd .. diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t --- a/tests/test-histedit-arguments.t +++ b/tests/test-histedit-arguments.t @@ -123,7 +123,7 @@ o 3 c8e6 four | o 2 eb57 three - | + . $ HGEDITOR=cat hg histedit -r 4 --commands - << EOF > edit 08d98a8350f3 4 five > EOF @@ -151,7 +151,7 @@ | o 3 c8e6 four |/ o 2 eb57 three - | + . $ hg unbundle -q $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-backup.hg $ hg strip -q -r f5ed --config extensions.strip= diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t +++ b/tests/test-largefiles-misc.t @@ -472,11 +472,11 @@ $ hg log -G anotherlarge @ changeset: 1:9627a577c5e9 - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: anotherlarge - | + . tag: tip + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: anotherlarge + . $ hg log glob:another* changeset: 1:9627a577c5e9 @@ -488,7 +488,7 @@ $ hg --debug log -T '{rev}: {desc}\n' -G glob:another* updated patterns: ['glob:../.hglf/sub/another*', 'glob:another*'] @ 1: anotherlarge - | + . #if no-msys $ hg --debug log -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys @@ -498,7 +498,7 @@ $ hg --debug log -G -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys updated patterns: ['glob:../.hglf/sub/another*'] @ 1: anotherlarge - | + . #endif $ echo more >> anotherlarge @@ -533,11 +533,11 @@ $ hg log -G glob:**another* @ changeset: 1:9627a577c5e9 - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: anotherlarge - | + . tag: tip + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: anotherlarge + . $ cd .. diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t --- a/tests/test-largefiles.t +++ b/tests/test-largefiles.t @@ -930,7 +930,7 @@ 7:daea875e9014 $ hg log -Gqf sub2/large7 @ 7:daea875e9014 - | + . $ cd .. Test log from outside repo @@ -1285,13 +1285,13 @@ 4:74c02385b94c move files $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub/large4 o 8:a381d2c8c80e modify normal file and largefile in repo b - | + : o 6:4355d653f84f edit files yet again | o 5:9d5af5072dbd edit files again | o 4:74c02385b94c move files - | + . $ hg log --template '{rev}:{node|short} {desc|firstline}\n' sub/large4 8:a381d2c8c80e modify normal file and largefile in repo b 6:4355d653f84f edit files yet again @@ -1299,13 +1299,13 @@ 4:74c02385b94c move files $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub/large4 o 8:a381d2c8c80e modify normal file and largefile in repo b - | + : o 6:4355d653f84f edit files yet again | o 5:9d5af5072dbd edit files again | o 4:74c02385b94c move files - | + . - .hglf only matches largefiles, without .hglf it matches 9 bco sub/normal $ hg log --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub @@ -1317,13 +1317,13 @@ 0:30d30fe6a5be add files $ hg log -G --template '{rev}:{node|short} {desc|firstline}\n' .hglf/sub o 8:a381d2c8c80e modify normal file and largefile in repo b - | + : o 6:4355d653f84f edit files yet again | o 5:9d5af5072dbd edit files again | o 4:74c02385b94c move files - | + : o 1:ce8896473775 edit files | o 0:30d30fe6a5be add files @@ -1340,13 +1340,13 @@ @ 9:598410d3eb9a modify normal file largefile in repo d | o 8:a381d2c8c80e modify normal file and largefile in repo b - | + : o 6:4355d653f84f edit files yet again | o 5:9d5af5072dbd edit files again | o 4:74c02385b94c move files - | + : o 1:ce8896473775 edit files | o 0:30d30fe6a5be add files @@ -1364,13 +1364,13 @@ @ 9:598410d3eb9a modify normal file largefile in repo d | o 8:a381d2c8c80e modify normal file and largefile in repo b - | + : o 6:4355d653f84f edit files yet again | o 5:9d5af5072dbd edit files again | o 4:74c02385b94c move files - | + : o 1:ce8896473775 edit files | o 0:30d30fe6a5be add files diff --git a/tests/test-log.t b/tests/test-log.t --- a/tests/test-log.t +++ b/tests/test-log.t @@ -1970,10 +1970,10 @@ | summary: content3 | o changeset: 3:15b2327059e5 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content2 - | + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content2 + : o changeset: 0:ae0a3c9f9e95 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -1985,16 +1985,16 @@ $ hg log -G a @ changeset: 4:50b9b36e9c5d - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content3 - | - | o changeset: 1:2294ae80ad84 - |/ user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content2 - | + : tag: tip + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content3 + : + : o changeset: 1:2294ae80ad84 + :/ user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content2 + : o changeset: 0:ae0a3c9f9e95 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -2008,10 +2008,10 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -Gf a @ changeset: 3:15b2327059e5 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content2 - | + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content2 + : o changeset: 0:ae0a3c9f9e95 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -2059,10 +2059,10 @@ | summary: content3 | @ changeset: 3:15b2327059e5 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content2 - | + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content2 + : o changeset: 0:ae0a3c9f9e95 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -2076,11 +2076,11 @@ $ hg debugobsolete 50b9b36e9c5df2c6fc6dcefa8ad0da929e84aed2 $ hg log -G a @ changeset: 3:15b2327059e5 - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: content2 - | + : tag: tip + : user: test + : date: Thu Jan 01 00:00:00 1970 +0000 + : summary: content2 + : o changeset: 0:ae0a3c9f9e95 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -2132,18 +2132,18 @@ $ hg log -f -G b @ changeset: 3:9bc8ce7f9356 - | parent: 0:f7b1eb17ad24 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: 1 - | + . parent: 0:f7b1eb17ad24 + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: 1 + . $ hg log -G b @ changeset: 3:9bc8ce7f9356 - | parent: 0:f7b1eb17ad24 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: 1 - | + . parent: 0:f7b1eb17ad24 + . user: test + . date: Thu Jan 01 00:00:00 1970 +0000 + . summary: 1 + . $ cd .. Check proper report when the manifest changes but not the file issue4499 diff --git a/tests/test-rebase-pull.t b/tests/test-rebase-pull.t --- a/tests/test-rebase-pull.t +++ b/tests/test-rebase-pull.t @@ -91,7 +91,7 @@ $ hg tglog -l 1 @ 2: 'R1' - | + . pull --rebase --update should ignore --update: @@ -111,7 +111,7 @@ $ hg tglog -l 1 o 2: 'R1' - | + . $ cd .. diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t --- a/tests/test-rebase-rename.t +++ b/tests/test-rebase-rename.t @@ -298,7 +298,7 @@ o 3: 'File c created as copy of b and modified' | o 2: 'File b created as copy of a and modified' - | + : o 0: 'File a created' Same steps as above, but with --collapse on rebase to make sure the @@ -323,9 +323,9 @@ $ hg tglog --follow d @ 3: 'Collapsed revision - | * File b created as copy of a and modified - | * File c created as copy of b and modified - | * File d created as copy of c and modified' + : * File b created as copy of a and modified + : * File c created as copy of b and modified + : * File d created as copy of c and modified' o 0: 'File a created' diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -718,7 +718,7 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg log -G --template '{rev} {desc|firstline} {author}' -R bundle://.hg/shelved/default.hg -r 'bundle()' o 4 changes to: commit stuff shelve@localhost - | + . $ hg log -G --template '{rev} {desc|firstline} {author}' @ 3 commit stuff test |