Skip to content

[Feature request] Split unrelated(?) side bar groups (Remotes/Tags/Branches vs Worktrees vs Stashes vs Modules) #2585

@grigorye

Description

@grigorye

Disclaimer:

  1. I feel like this may have been raised before, but I could not find it in the tracker. More generally, I would like to understand the vision for improvements here: are any planned, and what should I expect? I mainly want to provide some feedback, since the current design feels suboptimal for my day-to-day use cases.
  2. With that said, Fork is still my default Git tool, and I really appreciate the work behind it — especially keeping it fast, lean, and powerful, while also sticking to a no-subscription pricing model. You folks are awesome!

I believe the current sidebar organization (worktrees / branches / remotes / tags / stashes / submodules) is quite clunky for a few reasons:

  1. If one of the sections contains many entries, you have to either collapse it or scroll through it just to reach another section.
  2. In most cases, I already know what I am looking for: a branch, stash, worktree, or tag. I use all of these regularly, and I would like to work with each of them in a separate context, rather than constantly choosing between collapsing sections or scrolling and losing track of where I am.
  3. When I search for something, I usually already know whether it is a tag, stash, or worktree. Getting results from all categories at once makes it harder to find what I need.
  4. As more sections are added or become actively used, the overhead seems to only increase.

I understand that the current UI is meant to define the selection/content for the rest of the repository view. However, this model does not really work across groups. For example, it does not make much sense to compare a tag with a stash. Separating these sections would probably make the (selection (or lack of multiple selection)) behavior more clear.

At the same time, I do understand that branches, tags, and remotes should still be visible together in some contexts, for example for comparison or checkout purposes.

As an illustration, one possible approach could be:

  1. Introduce the following tabs in the sidebar:
    A. A dedicated tab for stashes
    B. A dedicated tab for worktrees
    C. A dedicated tab for remotes / branches / tags, with an additional control that allows filtering these types in or out, and possibly enabling multiple selection where appropriate
    D. I am not sure about submodules, but they probably do not fit naturally with the others either, at least in terms of selection

  2. In terms of selection handling, the current behavior can be probably retained, to iterate in small steps. That is, if you switch to another (sidebar) tab and make a selection there, it could simply clear the selection from the previous tab.

Regards,
Grigorii

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions