Skip to content

Feature Request: History display enhancements. #94

@cornelius-dol

Description

@cornelius-dol

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):

Image

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:

Image

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):

Image

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions