-
Notifications
You must be signed in to change notification settings - Fork 256
Description
I'm sometimes having trouble visualizing the overall branching structure, even on a filtered subset of related branches, when there are lots of commits on parallel branches in a large project with many devs.
The Git-provided option --simplify-by-decoration
(which can already be enabled in SourceGit
) is ALMOST helpful, since it displays only commits "decorated" with one or more branches/tags. However, it still falls short because it simplifies history TOO MUCH. It only shows a few of the relevant bifurcation- and merge-points, while I'd need to see ALL of these in order to get a fully graspable overview. Unfortunately, it doesn't seem possible to combine options in Git to achieve such a graph.
In Plastic SCM (which we've migrated from) there's an option called "View relevant changes only", which hides all "trivial" commits (i.e undecorated commits with only 1 parent and 1 child). That was very helpful, and I would suggest adding a similar feature in SourceGit.
By (optionally) filtering the log-graph using custom logic, instead of only relying on Git-provided options, we could have more granular options and give users some further added value beyond the command-line.
I found a separate project which does something more along these lines. While it uses graphviz
for visualization, which is not relevant here, I just want to apply a similar filtering in SourceGit, with include/exclude options for (all) / branches / tags / roots / bifurcations / merges :
https://github.com/git-big-picture/git-big-picture
BTW, I was hinted about that project from an old discussion-forum post, by someone looking for the discussed feature in Git itself: