diff -r a3fd84f4fb38 -r 3c4b2e880273 mercurial/graphmod.py --- a/mercurial/graphmod.py Sun Aug 26 19:14:26 2018 +0300 +++ b/mercurial/graphmod.py Thu Aug 23 13:33:19 2018 -0700 @@ -281,7 +281,7 @@ line.extend(echars[-(remainder * 2):]) return line -def _drawendinglines(lines, extra, edgemap, seen): +def _drawendinglines(lines, extra, edgemap, seen, state): """Draw ending lines for missing parent edges None indicates an edge that ends at between this node and the next @@ -298,7 +298,8 @@ while edgechars and edgechars[-1] is None: edgechars.pop() shift_size = max((edgechars.count(None) * 2) - 1, 0) - while len(lines) < 3 + shift_size: + minlines = 3 if not state['graphshorten'] else 2 + while len(lines) < minlines + shift_size: lines.append(extra[:]) if shift_size: @@ -319,7 +320,7 @@ positions[i] = max(pos, targets[i]) line[pos] = '/' if pos > targets[i] else extra[toshift[i]] - map = {1: '|', 2: '~'} + map = {1: '|', 2: '~'} if not state['graphshorten'] else {1: '~'} for i, line in enumerate(lines): if None not in line: continue @@ -463,7 +464,7 @@ while len(lines) < len(text): lines.append(extra_interline[:]) - _drawendinglines(lines, extra_interline, edgemap, seen) + _drawendinglines(lines, extra_interline, edgemap, seen, state) while len(text) < len(lines): text.append("")