Fork Sync
Fork Sync is a VS Code extension for multi-repo workspaces. It scans the workspace, finds every Git repository, shows which forks are behind upstream, and lets you run the full sync flow from inside VS Code.
It surfaces status directly inside a native Fork Sync section in Source Control.
User Flow
- Open VS Code on any folder, even if it contains many nested repositories.
- Open the native Fork Sync section inside Source Control.
- Fork Sync auto-scans the workspace and lists every Git repo it finds as separate rows.
- Click a repo row to expand it in place and inspect status, branch, upstream, sync progress, and missing commits.
- If the repo has no
upstream remote yet, Fork Sync prompts for the upstream URL and saves it with git remote add upstream <url>.
- Fork Sync shows the behind count immediately and mirrors the most relevant repo state in the status bar.
- Click the inline Sync + Pull action to run the update flow without opening a terminal.
- Live progress moves through
fetch, merge or rebase, and pull.
- When the flow finishes, the repo shows as up to date and is ready for the next push or PR.
Features
- Recursively scans every workspace folder for Git repositories
- Adds a native Fork Sync section inside VS Code Source Control with expandable repo rows, detail children, commit history, and inline actions
- Tracks upstream URLs per repository, not just per workspace
- Prompts once per repo when
upstream is missing and remembers any saved value
- Displays behind count, ahead count, tracked upstream branch, and missing commit list
- Mirrors the most relevant repository state in the status bar with warning and success badges
- Refreshes immediately when the built-in Git extension reports repository state or branch changes
- Runs
fetch, merge or rebase, and pull as separate live steps inside Source Control
- Stops on conflicts and offers a fast path into the VS Code merge editor
- Refreshes on demand, on focus, and on a background interval when auto-fetch is enabled
Settings
forkSync.checkIntervalMinutes: background check interval in minutes, default 5
forkSync.useRebase: use rebase instead of merge during sync, default false
forkSync.autoFetch: fetch upstream automatically on focus and background polling, default true
Run Locally
- Open the
fork-sync folder in VS Code.
- Run
npm install.
- Press
F5.
- In the Extension Development Host, open a parent folder that contains one or more forked Git repositories.
- Open Source Control and expand the Fork Sync section.
Sync Flow
Fork Sync runs the following steps in order:
git fetch upstream --prune
git merge upstream/main --no-edit or git rebase upstream/main
git pull origin <current-branch> or git pull --rebase origin <current-branch>
The extension resolves upstream/main dynamically and falls back to upstream/master or upstream/<current-branch> when needed.
Notes
- Fork Sync is designed for fork workflows where
origin is your fork and upstream is the source repository.
- Background refreshes do not auto-prompt for upstream configuration; prompts happen when you run the upstream setup action explicitly.
- If Git reports conflicts, Fork Sync stops immediately so you can resolve them before continuing.
| |