mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
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 | ~
This commit is contained in:
parent
ab72794fc8
commit
ab2ab42ccf
@ -2240,6 +2240,10 @@ def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None,
|
||||
styles[key])
|
||||
if not styles[key]:
|
||||
styles[key] = None
|
||||
|
||||
# experimental config: experimental.graphshorten
|
||||
state['graphshorten'] = ui.configbool('experimental', 'graphshorten')
|
||||
|
||||
for rev, type, ctx, parents in dag:
|
||||
char = formatnode(repo, ctx)
|
||||
copies = None
|
||||
|
@ -543,6 +543,7 @@ def asciistate():
|
||||
'lastcoldiff': 0,
|
||||
'lastindex': 0,
|
||||
'styles': EDGES.copy(),
|
||||
'graphshorten': False,
|
||||
}
|
||||
|
||||
def ascii(ui, state, type, char, text, coldata):
|
||||
@ -630,7 +631,15 @@ def ascii(ui, state, type, char, text, coldata):
|
||||
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
|
||||
|
@ -2633,4 +2633,106 @@ change graph edge styling
|
||||
summary: (4) merge two known; one immediate left, one immediate right
|
||||
|
||||
|
||||
$ cd ..
|
||||
|
||||
Change graph shorten, test better with graphstyle.missing not none
|
||||
|
||||
$ cd repo
|
||||
$ cat << EOF >> $HGRCPATH
|
||||
> [experimental]
|
||||
> graphstyle.parent = |
|
||||
> graphstyle.grandparent = :
|
||||
> graphstyle.missing = '
|
||||
> graphshorten = true
|
||||
> EOF
|
||||
$ hg log -G -r 'file("a")' -m -T '{rev} {desc}'
|
||||
@ 36 (36) buggy merge: identical parents
|
||||
o 32 (32) expand
|
||||
|\
|
||||
o : 31 (31) expand
|
||||
|\:
|
||||
o : 30 (30) expand
|
||||
|\ \
|
||||
o \ \ 28 (28) merge zero known
|
||||
|\ \ \
|
||||
o \ \ \ 26 (26) merge one known; far right
|
||||
|\ \ \ \
|
||||
| o-----+ 25 (25) merge one known; far left
|
||||
| o ' ' : 24 (24) merge one known; immediate right
|
||||
| |\ \ \ \
|
||||
| o---+ ' : 23 (23) merge one known; immediate left
|
||||
| o-------+ 22 (22) merge two known; one far left, one far right
|
||||
|/ / / / /
|
||||
| ' ' ' o 21 (21) expand
|
||||
| ' ' ' |\
|
||||
+-+-------o 20 (20) merge two known; two far right
|
||||
| ' ' ' o 19 (19) expand
|
||||
| ' ' ' |\
|
||||
o---+---+ | 18 (18) merge two known; two far left
|
||||
/ / / / /
|
||||
' ' ' | o 17 (17) expand
|
||||
' ' ' | |\
|
||||
+-+-------o 16 (16) merge two known; one immediate right, one near right
|
||||
' ' ' o | 15 (15) expand
|
||||
' ' ' |\ \
|
||||
+-------o | 14 (14) merge two known; one immediate right, one far right
|
||||
' ' ' | |/
|
||||
' ' ' o | 13 (13) expand
|
||||
' ' ' |\ \
|
||||
' +---+---o 12 (12) merge two known; one immediate right, one far left
|
||||
' ' ' | o 11 (11) expand
|
||||
' ' ' | |\
|
||||
+---------o 10 (10) merge two known; one immediate left, one near right
|
||||
' ' ' | |/
|
||||
' ' ' o | 9 (9) expand
|
||||
' ' ' |\ \
|
||||
+-------o | 8 (8) merge two known; one immediate left, one far right
|
||||
' ' ' |/ /
|
||||
' ' ' o | 7 (7) expand
|
||||
' ' ' |\ \
|
||||
' ' ' +---o 6 (6) merge two known; one immediate left, one far left
|
||||
' ' ' | '/
|
||||
' ' ' o ' 5 (5) expand
|
||||
' ' ' |\ \
|
||||
' +---o ' ' 4 (4) merge two known; one immediate left, one immediate right
|
||||
' ' ' '/ /
|
||||
|
||||
behavior with newlines
|
||||
|
||||
$ hg log -G -r ::2 -T '{rev} {desc}'
|
||||
o 2 (2) collapse
|
||||
o 1 (1) collapse
|
||||
o 0 (0) root
|
||||
|
||||
$ hg log -G -r ::2 -T '{rev} {desc}\n'
|
||||
o 2 (2) collapse
|
||||
o 1 (1) collapse
|
||||
o 0 (0) root
|
||||
|
||||
$ hg log -G -r ::2 -T '{rev} {desc}\n\n'
|
||||
o 2 (2) collapse
|
||||
|
|
||||
o 1 (1) collapse
|
||||
|
|
||||
o 0 (0) root
|
||||
|
||||
|
||||
$ hg log -G -r ::2 -T '\n{rev} {desc}'
|
||||
o
|
||||
| 2 (2) collapse
|
||||
o
|
||||
| 1 (1) collapse
|
||||
o
|
||||
0 (0) root
|
||||
|
||||
$ hg log -G -r ::2 -T '{rev} {desc}\n\n\n'
|
||||
o 2 (2) collapse
|
||||
|
|
||||
|
|
||||
o 1 (1) collapse
|
||||
|
|
||||
|
|
||||
o 0 (0) root
|
||||
|
||||
|
||||
$ cd ..
|
||||
|
Loading…
Reference in New Issue
Block a user