Skip to content

[FEATURE] Simplify graph: hide linear intermediate commits (branches-only view) #95

Description

@bkamuz

1. Background

On repos with long linear histories, the graph is mostly intermediate commits that do not help with understanding branch topology. A compact “structure only” view would make merges, divergence points, and branch tips easier to scan without digging through Settings.

2. Proposed Solution

Add a Simplify (or similar) toggle on the main graph panel — ideally in the search/filter bar next to the existing source/branch filters — that:

  • When on, hides ordinary linear intermediate commits and keeps branch-relevant ones: branch/tag tips, merge commits, fork/divergence points, and load-boundary commits as needed so the graph stays coherent.
  • When off (default), shows full history as today.
  • Updates the graph immediately from already-fetched log data (no extra git log).
  • Persists for the panel session like other filter toggles.

Primary affordance should be on the panel itself, not only a hidden setting.

3. Affected Area

Check all that apply.

  • Commit graph (Graph View)
  • Commit details panel (Bottom Panel)
  • Sidebar (Branches / Remotes / Tags / Stashes / Worktrees)
  • Toolbar (Fetch / Pull / Push / Refresh)
  • Context menu
  • Search
  • Statistics view (Stats)
  • Activity Log
  • i18n (localization)
  • Git operations (new Git command support)
  • Other

4. Alternatives or References

  • Branch filter already narrows reachability, but does not collapse linear noise inside the selected history.
  • A settings-only option would work, but is harder to discover for a view-mode toggle used while reading the graph.
  • Similar “important commits only” / simplify ideas appear in other Git GUIs; semantics here would be structural (tips / merges / forks), not first-parent alone.

Reference implementation on a fork (draft PR, intended for upstream once reviewed): bkamuz#1

5. Additional Context (optional)

Happy to adjust naming, keep/drop rules, or shrink the diff further to match project conventions. Not urgent given the current maintenance pause — opening this so it is tracked for when review resumes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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