diff mercurial/graphmod.py @ 28891:ac30adb260ea

graphmod: shorten graph Shorten the graph, cutting the all vertical (not oblique) edges rows. Activate with 'graphshorten = true' in [experimental] section. Example graph with deactivated option: $ hg log --graph --template '{rev} {desc|firstline}' --rev 1035:1015 o 1035 Merge with BOS |\ | o 1034 Fix help output, and a few broken tests. | | | o 1033 Merge with MPM. | |\ | | o 1032 Get patchbomb working with tip again. | | | | | o 1031 Rewrite log command. New version is faster and more featureful. | | | | | o 1030 Merge with MPM. | | |\ | | | o 1029 Emacs: implement hg-incoming, hg-outgoing and hg-push. | | | | | | | o 1028 Add commands.debugconfig. | | | | | | | o 1027 Emacs: fix up hg-log and hg-diff to operate more uniformly. | | | | | | | o 1026 Merge with MPM. | | | |\ | | | | o 1025 Merge with MPM. | | | | | | | | | ~ | | | o 1024 Sync buffers prior to doing a diff. | | | | | | | ~ o | | 1023 Minor tweak to the revgen algorithm |/ / o | 1022 Minor hgwebdir tweaks | | o | 1021 Add Makefile to the manifest | | o | 1020 Add default make rule | | o | 1019 Create helper functions for I/O to files in the working directory | | o | 1018 Add some aliases | | o | 1017 Fix up help for binary options |/ o 1016 Teach annotate about binary files | o 1015 Add automatic binary file detection to diff and export | ~ Example graph with activated option: $ hg log --graph --template '{rev} {desc|firstline}' --rev 1035:1015 o 1035 Merge with BOS |\ | o 1034 Fix help output, and a few broken tests. | o 1033 Merge with MPM. | |\ | | o 1032 Get patchbomb working with tip again. | | o 1031 Rewrite log command. New version is faster and more featureful. | | o 1030 Merge with MPM. | | |\ | | | o 1029 Emacs: implement hg-incoming, hg-outgoing and hg-push. | | | o 1028 Add commands.debugconfig. | | | o 1027 Emacs: fix up hg-log and hg-diff to operate more uniformly. | | | o 1026 Merge with MPM. | | | |\ | | | | o 1025 Merge with MPM. | | | | | | | | | ~ | | | o 1024 Sync buffers prior to doing a diff. | | | | | | | ~ o | | 1023 Minor tweak to the revgen algorithm |/ / o | 1022 Minor hgwebdir tweaks o | 1021 Add Makefile to the manifest o | 1020 Add default make rule o | 1019 Create helper functions for I/O to files in the working directory o | 1018 Add some aliases o | 1017 Fix up help for binary options |/ o 1016 Teach annotate about binary files o 1015 Add automatic binary file detection to diff and export | ~
author santiagopim <santiagopim@gmail.com>
date Fri, 08 Apr 2016 16:42:43 +0200
parents d7af9b4ae7dd
children f303b569134c
line wrap: on
line diff
--- a/mercurial/graphmod.py	Mon Apr 11 12:06:18 2016 -0700
+++ b/mercurial/graphmod.py	Fri Apr 08 16:42:43 2016 +0200
@@ -543,6 +543,7 @@
         'lastcoldiff': 0,
         'lastindex': 0,
         'styles': EDGES.copy(),
+        'graphshorten': False,
     }
 
 def ascii(ui, state, type, char, text, coldata):
@@ -630,7 +631,15 @@
     lines = [nodeline]
     if add_padding_line:
         lines.append(_getpaddingline(echars, idx, ncols, edges))
-    lines.append(shift_interline)
+
+    # If 'graphshorten' config, only draw shift_interline
+    # when there is any non vertical flow in graph.
+    if state['graphshorten']:
+        if any(c in '\/' for c in shift_interline if c):
+            lines.append(shift_interline)
+    # Else, no 'graphshorten' config so draw shift_interline.
+    else:
+        lines.append(shift_interline)
 
     # make sure that there are as many graph lines as there are
     # log strings