-
-
Notifications
You must be signed in to change notification settings - Fork 19
Feature Request: History display enhancements. #94
Description
This is a small QOL request which I have never seen in any other git tool. Simply put, I want to be able to designate a list of branches that should be considered "trunks" (IOW, main branches, which affect deployed systems), and as such should always be displayed leftmost in the history in the order specified, and in the same color for the entire history (with the branch line drawn dashed or faded all the way to the top, similar to how the head to working directory is currently drawn). There would only be a relatively small number of such branches, less than a dozen, and 3 or 4 for most projects.
Consider this project which has four trunks in its release cycle, stable, release, qa, and develop (and at any given time a hundred or more branches off these):
Here a change was made on stable (a hotfix), and then merged stable -> release -> qa -> develop. But the visual path of the merge zig-zags, making what happened just a little unintuitive. If the history graph locked these trunks' order left to right as specified, then it would uniformly merge from right to left, going from stable to develop. Moreover, the main branches would always be in the same place, so it would be visually intuitive when something happens to them, and which of them it happens to.
I imagine this could be a simple project setting just as a comma separated list which would only impact the history rendering to always drawn the nominated branches first and in the order given. After that it would do what it is currently doing.
Another enhancement that would be super-helpful if hovering a history line would display the branch/tag name as it is at that point so one doesn't have to trace them down the list. For visual reference here's a somewhat more busy set of merge activity that would be helped by this:
My final request would be for the graph to always render a branch even if branched at a "head" commit as diverging, so that branches are always represented as "branching". So the following, for example, would be not drawn in a straight line but pictured as dev/ld/... branching from "develop" (note, this would not apply to tags):
Please ask if you want further rationale to justify this. I imagine the changes are not difficult, but I could be way off base on that.