RFC: log graph layouting

108 views
Skip to first unread message

syntevo Support

unread,
Apr 12, 2016, 5:59:11 AM4/12/16
to smar...@googlegroups.com
Version 7.2 build #7033 contains a reworked log graph layouting
algorithm which properly handles branch priorities [1] and resolves some
rare problems related to arrows.

Furthermore, the new algorithm opens up the way to slightly customize
the core layouting by parameters like "maximum length" and
"rectilinearity" of connectors. I'm not sure whether these parameters
should actually be exposed to the user, but it would still be
interesting to hear whether they may result in better readable graphs
for real-world repositories. For this reason, I've temporarily added
following actions to the Commits graph context menu:

- Increase Maximum Connector Length
- Decrease Maximum Connector Length
- Increase Rectilinearity
- Decrease Rectilinearity

It's really hard to explain how these parameters are working, so just
play with them :) Screenshots of the results are much appreciated. You
can hide texts using Ctrl-Shift-Alt-T (when the Commits graph is focused).

[1]
https://www.syntevo.com/doc/display/SG/System+Properties#SystemProperties-smartgit.log.branchPriorities

--
Best regards,
Marc Strapetz
=============
syntevo GmbH
http://www.syntevo.com

WORMSS

unread,
Apr 12, 2016, 6:35:24 AM4/12/16
to SmartGit, smar...@syntevo.com

Now, this I like... I am not sure on the numbers for "increase/decrease" .. I just kept pressing everything until I found this.


But I do like (read: really like) how things are not always trying to hug the left hand wall all the time.



The Hide Text feature is actually really useful too. :D

- Colin.

syntevo Support

unread,
Apr 12, 2016, 9:53:11 AM4/12/16
to worms...@gmail.com, smar...@googlegroups.com
> Now, this I like... I am not sure on the numbers for "increase/decrease" ..
> I just kept pressing everything until I found this.

After exiting SmartGit, the current values will be written to settings.xml as "farDistance" and "columnCompactingTolerance". What are your current values here?

--
Best regards,
Marc Strapetz
syntevo GmbH
http://www.syntevo.com


04/12/2016 12:40 - WORMSS wrote:

>
>
> Now, this I like... I am not sure on the numbers for "increase/decrease" ..
> I just kept pressing everything until I found this.
>
>
> But I do like (read: really like) how things are not always trying to hug
> the left hand wall all the time.
>
>
> <https://lh3.googleusercontent.com/-Gwmwckxn-rg/VwzK0STe_KI/AAAAAAAAx_0/u2_CQWdnDg0hRo0sj2lh3mJggXJ-mah1ACLcB/s1600/logspacing.png>

W. Gauch

unread,
Apr 13, 2016, 7:58:36 AM4/13/16
to SmartGit, smar...@syntevo.com
I like the new feature :-)

Maybe you could later add little hideable slider or +/- controls near the Coloring dropdown to change this setting, and save it per repository.

My current values:
        <prop key="farDistance" value="200" type="int"/>
        <prop key="columnCompactingTolerance" value="2" type="int"/>

Some examples:



From a demo repo:



Here the algorithm could try to prevent crossings - if both green lines would branch to the right at the same point:



There is a BitBucket AddOn which tries to reconstruct the GitFlow branches, have a look:
https://collabsoft.atlassian.net/wiki/display/docs/Git%20Flow%20Chart
It uses commit messages and other hints to identify master and develop and so on - read the FAQ.
Maybe you could share some code.

Many colleagues have this on their whishlist - they'll be starting with git and gitflow very soon, and have a lot to learn, coming from VSS ;-)

Auto Generated Inline Image 1
Auto Generated Inline Image 2
Auto Generated Inline Image 3

syntevo Support

unread,
Apr 18, 2016, 5:35:29 AM4/18/16
to smar...@googlegroups.com
> Furthermore, the new algorithm opens up the way to slightly customize
> the core layouting by parameters like "maximum length" and
> "rectilinearity" of connectors. I'm not sure whether these parameters
> should actually be exposed to the user, but it would still be
> interesting to hear whether they may result in better readable graphs
> for real-world repositories. For this reason, I've temporarily added
> following actions to the Commits graph context menu:
>
> - Increase Maximum Connector Length
> - Decrease Maximum Connector Length
> - Increase Rectilinearity
> - Decrease Rectilinearity

For the upcoming 7.2 Preview 4 build, you'll have to set system property:

smartgit.log.graph.layoutActions=true

to have the actions showing up.

--
Best regards,
Marc Strapetz
=============
syntevo GmbH
http://www.syntevo.com


Reply all
Reply to author
Forward
0 new messages