comparison 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
comparison
equal deleted inserted replaced
28890:468339891670 28891:ac30adb260ea
541 'seen': [], 541 'seen': [],
542 'edges': {}, 542 'edges': {},
543 'lastcoldiff': 0, 543 'lastcoldiff': 0,
544 'lastindex': 0, 544 'lastindex': 0,
545 'styles': EDGES.copy(), 545 'styles': EDGES.copy(),
546 'graphshorten': False,
546 } 547 }
547 548
548 def ascii(ui, state, type, char, text, coldata): 549 def ascii(ui, state, type, char, text, coldata):
549 """prints an ASCII graph of the DAG 550 """prints an ASCII graph of the DAG
550 551
628 629
629 # lines is the list of all graph lines to print 630 # lines is the list of all graph lines to print
630 lines = [nodeline] 631 lines = [nodeline]
631 if add_padding_line: 632 if add_padding_line:
632 lines.append(_getpaddingline(echars, idx, ncols, edges)) 633 lines.append(_getpaddingline(echars, idx, ncols, edges))
633 lines.append(shift_interline) 634
635 # If 'graphshorten' config, only draw shift_interline
636 # when there is any non vertical flow in graph.
637 if state['graphshorten']:
638 if any(c in '\/' for c in shift_interline if c):
639 lines.append(shift_interline)
640 # Else, no 'graphshorten' config so draw shift_interline.
641 else:
642 lines.append(shift_interline)
634 643
635 # make sure that there are as many graph lines as there are 644 # make sure that there are as many graph lines as there are
636 # log strings 645 # log strings
637 extra_interline = echars[:(ncols + coldiff) * 2] 646 extra_interline = echars[:(ncols + coldiff) * 2]
638 if len(lines) < len(text): 647 if len(lines) < len(text):