Mercurial > hg
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): |