HydraGit Docs
v0.3.1

Main panel

The IntelliJ-style git panel — hydragit.mainView — lives in VS Code's bottom panel area. It is a resizable split of three regions (branch tree, commit log + graph, commit detail) wrapped by a toolbar, a vertical action rail, and context menus.

Opening the panel

Entry points

  • Activity barClick the HydraGit hexagon icon in the activity bar. Its view container declares hydragit.revealAll, which focuses the main panel.
  • Bottom panelThe panel tab labelled HydraGit in VS Code's panel row (next to Terminal / Problems).
  • CommandHydraGit: Force Refresh hydragit.forceRefresh re-pulls all data if the panel ever looks stale.

What happens next

  1. On activation the extension spawns the Go binary (hydragit-server) and points it at the workspace repo via HYDRAGIT_REPO.
  2. The webview loads and immediately requests status, branches, log, stash and tags.
  3. A file watcher on .git/{HEAD,refs/**,COMMIT_EDITMSG} posts a refresh message whenever the repo changes (including from the terminal), so the panel stays live.

Branch tree BranchPane

The left region (Discord/Linear-style). Local + remote branches, folder-style grouping for slashed/names, tags, stashes, worktrees and snapshots — each its own collapsible section.

  • Undo-timeline row (top) — labelled ↺ Undo timeline (amber, highlighted while active); click it to open the reflog. It no longer masquerades as a HEAD · <branch> branch row.
  • One hydra head = one branch — branch rows use a single-head hydra icon (gradient on the checked-out branch). The default branch is marked with a shield (resolved from origin/HEAD), not a guessed ★.
  • Ahead/behind counts↑2 ↓1 (amber/cyan) per branch; in-sync branches show nothing.
  • Per-section + on hover — new branch, tag at HEAD, stash, worktree, or manual snapshot.
  • Type-to-filter (⌕ in the pane header) filters every section at once, auto-expanding matches.
  • Folder groupingfeature/login, feature/signup collapse under a feature/ node; right-click the folder to rename the whole prefix.
  • Right-click any branch, tag, folder, stash, worktree or snapshot for its context menu.

Commit log & graph LogPane

The centre region: the lane graph rendered as inline SVG next to resizable Commit / Author / Date columns.

  • Virtualized — only the visible window is in the DOM, so the full history scrolls smoothly at any size.
  • Hover a row to highlight that commit's branch line and dim the rest.
  • Click a row to load it into the detail pane.
  • Right-click a row for the 14-item commit context menu.

Commit detail DetailPane

The right region. For the selected commit it shows a metadata card, the changed-file tree (no synthetic repo-root node), and an inline diff. Selecting a file opens its hunks; it also hosts the multi-file compare view.

  • Click the hash to copy it (GitHub-style, ✓ feedback) — the separate Copy-hash button is gone.
  • Refs render as pillsHEAD → develop splits into a HEAD pill and a branch pill; tags amber.
  • Action row — visible chips Cherry-pick · Branch here · Tag · ↗ View on remote (↗ shown only on pushed commits), plus a ⋯ overflow with Checkout at commit (detached), Copy commit message, Save as patch, and Revert (separated, red). Every action routes through the same handler as the log's right-click menu.
  • File status letters use VS Code's own SCM colours (gitDecoration.*) as bare letters; +/− totals sit in the tree toolbar.

Toolbar Toolbar

The strip across the top of the panel, built around one token-search input (Slack/Gmail-style):

  • Branch pill (left) — opens a searchable branch picker with a pinned All branches entry; the pill label reflects the active scope, so the old This-branch/All-branches toggle is gone.
  • One search box — focusing it opens a scope dropdown (Author / File / Hash / Code); typing a prefix (author:, file:, hash:, code:, or @ for author) turns it into a removable coloured chip inside the input. The old icon mode-tabs are gone.
  • Contextual undo — an amber “Undo merge / rebase / reset / pull” button slides in only when something is actually undoable, instead of a permanently visible Undo.

Action rail ActionRail

The thin vertical strip of quick-action buttons. Hovering each shows a tooltip; the Sync button is accented as the primary action.

ButtonTooltipGoes to
SyncSync (fetch + pull)Sync
CheckoutCheckoutBranch picker
Fetch / Pull / PushFetch · Pull · PushRemotes
New branchNew branchCreate branch
Merge / RebaseMerge branch · RebaseMerge / Rebase
Delete branchDelete branchDelete branch
Stash / TagStash changes · Create tagStash · Tags

Context menus & tooltips

Right-click targets across the panel open tailored menus; every actionable control has a hover tooltip. See the full enumeration on the context menus page.

Resizable panes & columns PaneDivider

Drag the dividers between the three regions to re-balance them, and drag the Commit / Author / Date column edges in the log. Layout is preserved while the panel is open.