Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Direct Repository SyncNew to Visual Studio Code? Get it now.
Direct Repository Sync

Direct Repository Sync

Direct Technologies

|
15 installs
| (0) | Free
Adds a single button to sync all git repositories in the current workspace.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Direct Repository Sync

VS Code / Cursor extension that adds Sync all for every eligible Git repository in the workspace: one action in the Source Control → CHANGES header, then fetches and synchronizes changed repositories according to your settings.

Requires the built-in Git extension (vscode.git) and VS Code ^1.85 (see engines in package.json).

Where is the button?

  • Menu: scm/title, group navigation
  • Visibility: when: view == workbench.scm so the control appears on the CHANGES view title bar only (same idea as the built-in tree/list toggles), not duplicated on each repository row for this command.

Native Git icons on each repo row (sync, pull, push, etc.) are not from this extension; you can hide those separately via the toolbar context menu or Git-related settings.

Behavior

  1. Uses the Git extension API only (repo.fetch(), repo.pull(), repo.push()), not git.* palette commands, so you should not get a “Choose a repository” picker from this flow.
  2. Optionally skips dirty repos and always skips repositories without an upstream branch (default: skip dirty = on).
  3. Fetches and synchronizes each remaining repository in the same bounded parallel queue. A repository starts its pull or push as soon as its fetch finishes; it does not wait for the slowest repository's fetch.
  4. Writes a full log to Output → “Sync All Repositories” ([OK] / [FAIL] per path, including duration).

Features

  • Single Sync all entry next to other CHANGES actions (Codicon repo-sync on the command).
  • Configurable parallelism and filters (see below).
  • Extension icon: media/icon.png — 128×128 PNG (square) recommended; referenced from package.json → "icon".

Usage

  1. Open Source Control (CHANGES).
  2. Click Sync all in the header toolbar, or run the command Git: Sync All Repositories from the Command Palette (Cmd+Shift+P / Ctrl+Shift+P).

Settings

ID Default Description
syncAllRepos.maxParallel 32 Max repositories to process in parallel. Lower it if the Git server or network becomes overloaded.
syncAllRepos.onlyIfAheadBehind true After fetch, only sync repositories that are ahead or behind upstream.
syncAllRepos.skipDirty true Skip repositories with local changes.

Development

cd sync-all-repos
npm install
npm run compile

Use Run → Start Debugging to try the extension in a new Extension Development Host window.

Packaging (VSIX)

cd sync-all-repos
npm install
npm run compile
npx vsce package

Install the generated .vsix in Cursor/VS Code: Extensions → … → Install from VSIX….

Notes

  • Some repos may fail (conflicts, auth, missing remotes, etc.). Failures are listed in Output → Sync All Repositories; other repos still run.
  • If repo.fetch / repo.pull / repo.push are not exposed by the Git API in your environment, the sync will error; check the Output channel for messages.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft