propose graphopt revisions order transforms
here attached a bundle with brach, that provides graphopt.Graph with transformations that should give a bit comfort/handy revision tree view.
Provided 2 transforms:
parents_line_closer- for selected revision it moves a line of parents from first ancestor, right below target revision. so, if it faaaar from inerested revision, it try to move them close to view
reorder_for_merge- for selected merge revision, it looks for revs that are above parents, and try to move them above selected child. After move descendants above merge point, it reduces length of lines to parents. And, possibly, reduces some lines. It intended to make a history more clear, and most intended - make a tree width as less as can.
Second transform is a target of this work. It motivated by repo imported from git, that have such a big amount of merges, that ordered so inconvinient, that width of graph comes a few screens. and amount of lines to parents so big, that no any possibility to track them.
This kind of graphs comes from hggit behaviour - it imports revision not in date order, but per brach. so if say
release branch have maaaaany merges from
dev branch - you got a tree as wide flag.
To manage such a history, i has try to order revisions by date, but unfortunaly - order of revision not strongly meets date order. So need a reorder, that still keep DAG consistent, but recovers some historic-close order.
I guess, that merges order is most historic-like. And
reorder_for_merge provide it.
How to use:
context menus on a
graphcolumn now have a checkboxed liist of avail transforms. Just check what you need. Or Disable all.
context menus on
revcolumn have item do disable all transforms.
This transforms apply over all tree.
context menus on revision item in graph column have submenu
transforms- where can invoke avail transform per revision.
config ini can specify transforms that can be apply over tree on repo load.
<transform name> = boolean