⬡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
- On activation the extension spawns the Go binary (
hydragit-server) and points it at the workspace repo viaHYDRAGIT_REPO. - The webview loads and immediately requests status, branches, log, stash and tags.
- 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 grouping —
feature/login,feature/signupcollapse under afeature/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 pills —
HEAD → developsplits 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.
| Button | Tooltip | Goes to |
|---|---|---|
| Sync | Sync (fetch + pull) | Sync |
| Checkout | Checkout | Branch picker |
| Fetch / Pull / Push | Fetch · Pull · Push | Remotes |
| New branch | New branch | Create branch |
| Merge / Rebase | Merge branch · Rebase | Merge / Rebase |
| Delete branch | Delete branch | Delete branch |
| Stash / Tag | Stash changes · Create tag | Stash · 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.