VersionDock
Manage Git and SVN changes, commits, history and conflicts inside VS Code.
English · 简体中文 ·
Issues ·
Contributing ·
Changelog
VersionDock supports mixed Git/SVN workspaces, operations across repositories, a three-pane conflict editor and optional AI workflows.
Workflows
| Area |
Current capabilities |
| Changes and commits |
Tree / flat file views, diff previews, selected-file commits, Git stage / unstage, amend, commit and push, commit-message history |
| Multiple repositories |
Mixed Git/SVN discovery, repository colors and visibility, combined changes and history; nested repositories manage their own files |
| History |
Git branch graph, SVN revisions, file / selection history, author / text / date / branch filters, commit details and comparison |
| Branches and tags |
Git create, checkout, merge, rebase, compare, rename and delete; tag creation, checkout, merge, push and local / remote deletion |
| Sync |
Incoming / outgoing commits, fetch, pull, push, sync, undo of unpushed commits and local-change backups before updates |
| Local changes |
Named changelists, native Git Stash, patch shelves, full / per-file restore and diff previews; shared shelves with Desktop |
| Conflicts |
Git/SVN conflict lists, three-pane text merging, saving and marking resolutions, progress and abort actions for ongoing operations |
| Repository structure |
Git submodule initialization / updates, worktree creation / pruning, subtree add / pull / push / split and related operations |
| Accounts and remotes |
Git identity profiles, SVN authentication management, GitHub / GitLab / Gitee accounts and clone / publish entry points |
| Editor history |
Git/SVN line annotations, current-line commit hints and navigation to history |
The Commit panel offers simplified, changelists and vscode layouts, light / dark themes, adjustable density and scrollbars, and a separate window.
Optional AI workflows
AI features require a configured model service or local Agent CLI. Git and SVN operations work independently.
- Commit messages based on selected changes, with customizable prompts.
- Commit explanations grounded in historical changes and file diffs.
- Code reviews of selected changes.
- Conflict resolution that proposes text-conflict results for review and application.
- Commit composition that groups selected changes into an editable commit plan before execution.
| Mode |
Integrations |
| Model service |
GitHub Copilot, OpenAI, Claude, Gemini and custom OpenAI-compatible endpoints |
| Local Agent CLI |
Claude, Codex, Antigravity and OpenCode |
OpenAI and custom endpoints support chat-completions and responses. CLI tools must be installed and authenticated separately. These workflows send selected code, diffs or conflict context to the configured service / Agent. Choose an integration appropriate for your repository. AI API keys are configured through VS Code settings; use user settings to avoid committing keys in workspace configuration.
Conflict editor
The editor presents the current version, editable result and incoming version side by side, with per-conflict actions, navigation and synchronized scrolling. SVN property and tree conflicts are identified separately in the conflict list.
Install and start
Runtime requirements: VS Code 1.85.0+, an available Git executable, and the svn command-line client for SVN working copies (1.14+ recommended). Installing Node.js separately is not required to run the packaged extension.
Building from source requires Node.js 24 and npm. The nvm commands below are for existing nvm installations; installing Node.js 24 directly also works.
Search the extension ID chenqinru.versiondock in VS Code, download an available VSIX from Releases, or build from source:
git clone https://github.com/chenqinru/VersionDock.git
cd VersionDock
# Install and use Node.js 24 as specified in .nvmrc
nvm install
nvm use
npm ci
npm run package
Run Extensions: Install from VSIX… in VS Code and select the generated versiondock-<version>.vsix. Open a folder containing Git repositories or SVN working copies.
- VersionDock Commit in the sidebar: inspect changes, select files, commit or save local changes.
- VersionDock Log in the panel: inspect history, branches / tags, commits and diffs.
- Status bar branch entry: repository-specific Git or SVN operations.
- Command Palette: search for
VersionDock to open history, conflicts, annotations and settings.
Common settings
Search for versiondock in VS Code settings. The extension's configuration lists all available options.
| Setting |
Default |
Purpose |
versiondock.changesViewMode |
simplified |
Changes layout |
versiondock.layoutDensity |
comfortable |
UI density; also supports compact |
versiondock.scrollbarVisibility |
system |
System, automatically hidden or always visible scrollbars |
versiondock.defaultSaveAction |
stash |
Default to Git Stash or Shelve when saving changes |
versiondock.ai.executionMode |
provider |
Model service or agent-cli |
versiondock.ai.provider |
github-copilot |
Model provider |
versiondock.ai.apiProtocol |
chat-completions |
OpenAI / custom endpoint protocol |
versiondock.ai.cli.provider |
claude |
Local Agent CLI |
Recommended: VersionDock Desktop
For Git/SVN management outside your editor, try VersionDock Desktop. This standalone workbench runs on macOS, Windows and Linux, bringing changes, commits, synchronization, history and conflicts across multiple projects into one application.
Desktop and this extension are installed separately and can be used independently or together. See the Desktop installation guide, or download the app from Releases.
Git, SVN and Desktop
- SVN has no Git index: selected files are the SVN commit targets. Git Stash and patch shelves are Git-only features.
- SVN branch / tag operations recognize the conventional
trunk, branches and tags layout. Availability depends on the repository structure.
- VersionDock Desktop is a separate desktop project. Updated versions of both clients share Stash, the Git index and shelves for the same local Git working directory. Independent clones do not share local data; shelves are isolated between worktrees. See shelf interoperability.
- Restoring a shelf keeps its record by default. A full restore can also delete it. Refresh the other client to see additions or deletions.
Development
Use Node.js 24 and npm. npm run package builds the host and all Webviews automatically.
npm ci
npm run check # Lint, type checks and repository regression tests
npm run build # Production build
npm run watch # Development watch
Press F5 in VS Code to start the Extension Development Host. Use temporary repositories to verify Git/SVN writes.
Attribution and license
Thanks to RioNoir and the contributors to GitCharm for the original implementation. VersionDock is a modified, independently maintained derivative. Changes and issues in this project are the responsibility of this repository's maintainers.
Distributed under GPL-3.0-only. See NOTICE and third-party notices for source and resource attribution.