Skip to content

Releases: the0807/git-graph-plus

v0.4.2

24 May 14:00

Choose a tag to compare

New Features

  • Fast-Forward Without Checkout - You can now fast-forward a non-current branch up to its upstream without switching to it.
  • Wide Graph Horizontal Scrolling - Commit graphs with many concurrent branches now scroll horizontally, with the author, SHA, and date columns pinned to the right.
  • Graph Auto-Pan - As you scroll vertically, the graph pans horizontally to keep the start of the commit message in view.

Improvements

  • Diff Syntax Highlighting - Highlighting now follows your VS Code light/dark theme and covers many more languages (Svelte, Vue, Ruby, PHP, SCSS, Kotlin, Swift, C#, TOML, XML, and more) instead of falling back to plain text.
  • Loading Feedback - Changing filters, refreshing, and pressing Ctrl+R now show a loading state while the graph reloads.

Performance

  • Faster Rebase Conflict Preview - The rebase conflict predictor now probes commits in parallel, cutting preview latency on multi-commit branches.
  • Large Diffs - Very large diffs are now capped with an opt-in "show full diff" button so opening them no longer freezes the panel.
  • Large Repositories - Faster commit graph rendering and initial load.
  • On-Demand Syntax Grammars - Diff highlighting grammars load only when a file needs them, keeping the panel light.

Bug Fixes

  • Load More Button - Stays in view while the graph is scrolled horizontally.
  • Auto-Refresh - The graph now refreshes on working-tree changes, and rapid file selections no longer overwrite each other's diffs.

v0.4.1

21 May 13:12

Choose a tag to compare

Improvements

  • Modal Polish - Spaced out the amend modal's option checkboxes, kept the message field scrollable when keeping a long message, centered the checkbox tick, and made the "no conflict" / "staged" status checkmarks a touch bolder.

Bug Fixes

  • Large Repository Rendering - The commit graph no longer pushes commit messages off screen or overlaps the SHA and date columns in repositories with many concurrent branches.
  • Custom Git Path - The extension now honors the VS Code git.path setting, so it works when Git is not on the system PATH (e.g. portable or MSYS2 installs).
  • Compare View Diffs - Clicking a file while comparing two commits (or comparing to the working tree) now shows its diff again.
  • Git LFS Warning - Stopped showing a spurious warning when Git LFS is not installed.

v0.4.0

20 May 11:27

Choose a tag to compare

New Features

  • Amend from Graph - You can now amend the last commit directly from the graph's context menu or keyboard shortcuts.
  • SCM Integration for Uncommitted Changes - Clicking the uncommitted-changes row (or the new tooltip) now automatically opens the VS Code Source Control view.
  • Rebase Conflict Prediction Limits - The rebase conflict predictor now surfaces a 20-commit cap when the topic branch has deep history, keeping the UI responsive while providing useful feedback.

Improvements

  • Fast-Forward Autostash - Automatic stash popping now works correctly for fast-forward merges, matching standard pull semantics.
  • Stash and Checkout Behavior - The 'stash and checkout' flow now correctly sets changes aside instead of carrying them over to the target branch.
  • Interactive SCM State - Double-clicking and using the context menu on uncommitted change files is now supported.
  • Enhanced i18n - Routed remaining hardcoded English tooltips, modal labels, and CommitDetails labels through the translation system.

Performance

  • Unified Graph Layout - Graph layout is now computed once per refresh, significantly reducing CPU usage on large repositories.
  • Shared Reachability Index - Hash indices are now shared across graph reachability passes, speeding up branch/tag/stash association by up to 30%.
  • Deduplicated Data Fetching - In-flight fetches for branches, tags, remotes, and worktrees are now deduplicated, preventing redundant git calls during rapid UI interaction.
  • Optimized Highlighting - Large file diffs are now highlighted in chunks to maintain UI responsiveness during scroll.

Bug Fixes

  • Improved Diff Parsing - Diff headers and path resolution are now more robust, correctly handling +++/--- lines and trailing newlines.
  • Pagination Reliability - Fixed duplication of the UNCOMMITTED and stash rows when navigating paginated log pages.
  • Git-Flow Stability - Hardened git-flow inputs and guarded against race conditions during diff generation.
  • Worktree Support - Fixed conflict marker probing and gitdir resolution when working inside linked git worktrees.
  • Search Robustness - Search handlers are now guarded with sequence counters to prevent stale results from overwriting newer queries.
  • Commit Stats Alignment - Commit stats are now binned by the author's local time instead of the host's time.
  • Security Hardening - Improved validation for webview-supplied paths and git payloads.
  • (Plus over 20 other stability and correctness improvements)

v0.3.12

17 May 13:40

Choose a tag to compare

Improvements

  • Stricter Git Input Validation - File paths and search inputs are now validated against git's own rules before being passed to the CLI, preventing malformed names (paths starting with -, control characters in search queries, file:// remote URLs without scheme allowlist) from being misinterpreted
  • Branch/Tag Name Checks - Names are now rejected if any slash-separated component is empty, starts with ., or ends with .lock — matching git check-ref-format more closely

Bug Fixes

  • Interactive Rebase: Reword in Squash Groups - A reword target followed by squash/fixup now honors the typed final message instead of git's combined-message default
  • Interactive Rebase: Fixup-only Group Message - Edited target message is no longer silently dropped in fixup-only groups
  • Interactive Rebase: Order-only Changes - The "Start Rebase" button is now enabled when only commit order has changed
  • Rebase Pause No Longer Shows Error Dialog - When edit step or a conflict pauses the rebase, the redundant error dialog on top of the banner is gone — the banner alone guides next steps
  • Modals Stay Open After Operation Fails - Failed operations now close the modal that triggered them instead of leaving it sitting open in a stale state
  • Tooltip Escape Inside Modals - The Escape key now dismisses tooltips even when focus is trapped inside a modal
  • Closing the Panel During a Long Operation - Closing the Git Graph+ panel while a long git operation is in flight no longer triggers errors when the result tries to post back to the (now-gone) webview
  • Sidebar Auto-refresh Overlap - Rapid file watcher events can no longer trigger overlapping refreshes that produced inconsistent sidebar state
  • LFS Warning Noise - Warnings for known-harmless LFS configurations (file:// remote, missing lock server) are suppressed while real failures are still surfaced
  • Windows Repo Paths with Special Characters - Interactive rebase now works correctly when the repository path contains &, |, %, parentheses, etc.
  • Conflict Banner Localization - "Merge/Rebase/Revert/Cherry-Pick Conflict" labels and the "Abort" button are now translated in Korean and Chinese

v0.3.11

17 May 09:19

Choose a tag to compare

New Features

  • VS Code Credential Prompt on Remote Auth Failure - When fetch/pull/push fails due to missing or invalid HTTP credentials, Git Graph+ now drives VS Code's built-in credential prompt and retries the command once

Performance

  • Graph Rendering - Additional speedups in commit graph rendering hot paths

Bug Fixes

  • Phantom Rebase State - Status banner no longer falsely reports a rebase as in progress when REBASE_HEAD is left behind after rebase --continue succeeds; the rebase state directory is now the canonical marker
  • Nested Git Repositories - Untracked entries that are nested git repos (not registered as submodules) are now expanded and labeled distinctly instead of showing as an empty diff

v0.3.10

16 May 16:11

Choose a tag to compare

New Features

  • Uncommitted Changes Node - Shows pending uncommitted changes as a virtual node at the top of the commit graph; click to view staged and unstaged diffs in the details panel
  • Copy Short SHA - New "Copy Short SHA" context menu item on the commit graph

Improvements

  • Operation Notifications - Added completion notifications for Delete Remote Branch, Add/Remove Remote, Drop Stash, and Add/Remove Worktree
  • Short SHA in Messages - Notification messages for rebase, reset, and detached HEAD checkout now show the short (7-char) SHA

Performance

  • Graph Traversal Speed - Replaced O(n²) BFS queue with an O(n) index-pointer approach in hot paths, significantly improving rendering on large repositories
  • Diff Syntax Highlighting - Switched to synchronous highlighting after init, capped at 5,000 lines, and guarded against stale renders when the selected diff changes mid-render
  • Repo Discovery Timeout - Added 15-second timeout guard to prevent hangs during repository discovery on slow disks

Bug Fixes

  • Branch Selection Modal - Fixed missing modal when double-clicking a commit shared by multiple local branches; now shows a dropdown to select the target branch

v0.3.9

13 May 13:09

Choose a tag to compare

Bug Fixes

  • Conflict Prediction Accuracy - Improved conflict prediction for rebase, cherry-pick, and revert operations
  • Fast-forward Notification Order - Fixed notification order bug in fast-forward that could cause inconsistent state

v0.3.8

13 May 11:37

Choose a tag to compare

New Features

  • Resizable File List Panel - Drag the divider between the file list and diff viewer in the commit details panel to adjust their relative widths (min 120px, max 480px)

Improvements

  • Ref Badge Icon Alignment - Fixed vertical alignment of cloud and tag icons in REFS badges in the commit details panel

Bug Fixes

  • Filter Preservation on Refresh - Branch and author filters are now correctly preserved across both manual and auto refresh
  • Filter Persistence on Reopen - Branch and author filters are now correctly restored when the webview panel is closed and reopened

v0.3.7

12 May 14:55

Choose a tag to compare

New Features

  • Commit Preview Hover Card - View commit details by hovering over parent links in the commit details panel
  • Synchronized Diff Scrolling - Side-by-side diff panes now scroll together for easier comparison

Improvements

  • Refined Commit Details UI - Modernized layout with a dedicated card for the commit message, circular avatars, and cleaner metadata display
  • SHA Copy Shortcuts - Added dedicated buttons to copy both full and short (7-char) SHA hashes in the commit details panel
  • Enhanced Ref Badges - Consistent badge styling across all reference types for better visual unity
  • Relative UI Scaling - Switched to relative units (em) for panel buttons to improve theme and font-size compatibility

Performance

  • Lazy Loading Diffs - Improved popup responsiveness by implementing lazy loading for commit diff data

Bug Fixes

  • Type Safety - Fixed latent TypeScript errors in the message bus and main panel message routing
  • Fullscreen Reset - Fullscreen state now correctly resets when closing the bottom panel via the Escape key
  • Tooltip Reliability - Fixed an issue where tooltips could get stuck when a button becomes disabled
  • UI Layout Fixes - Widen date column, fixed i18n filter tooltips, and moved status bar for better visibility

v0.3.6

10 May 05:02

Choose a tag to compare

New Features

  • Branch Filter Dropdown - Filter the commit graph to show only commits reachable from a selected branch
  • Editor Title Bar Icon - "Open Git Graph" icon added to the editor title bar for quick access
  • Open File / Open Changes - Right-click any file in the commit diff viewer to open it or view its changes directly in VS Code

Improvements

  • Squash Merge - Auto-commits on success; shows conflict resolution UI when conflicts are detected
  • Graph Rail Colors - Rail colors assigned by lowest available index (Fork-style) for consistent branch coloring
  • VS Code Notifications - Success toasts for git operations use native VS Code notifications
  • Toolbar Badge Visibility - Improved contrast for ahead/behind badges and the unpublished branch icon
  • CommitDetails Font Sizes - Relative font sizes in the commit details panel for better theme compatibility
  • Search Label - "All branches" filter label shortened to "All"

Bug Fixes

  • Git Flow Button - Git Flow toolbar button is now disabled during loading/operating state, consistent with other toolbar buttons
  • Fast-forward Modal - Skip the fast-forward confirmation when double-clicking the local branch badge on the current branch
  • Checkout Modal - Show branch pill only (no commit pill) when checking out a branch with no upstream
  • Modal Input Reset - Branch rename and stash save modals now reset their input fields when reopened
  • Sidebar JSON Error - Fixed circular structure to JSON error in sidebar; added missing message handlers