vcspull worktree sync

Create or update worktrees to match configuration.

Command

Usage

usage: vcspull worktree sync [-h] [-f FILE] [-w DIR] [--json] [--ndjson]
                             [--color {auto,always,never}] [--dry-run]
                             [pattern ...]

Positional Arguments

repo_patterns pattern

patterns / terms of repos, accepts globs / fnmatch(3)

Default
None

Options

-f, --file FILE

path to config file (default: ~/.vcspull.yaml or ./.vcspull.yaml)

Default
None
-w, --workspace, --workspace-root DIR

filter by workspace root directory

Default
None
--json

output as JSON

Default
False
--ndjson

output as NDJSON (one JSON per line)

Default
False
--color

when to use colors (default: auto)

Default
auto
Choices
auto, always, never
--dry-run, -n

preview what would be synced without making changes

Default
False

Basic usage

Sync all configured worktrees:

$ vcspull worktree sync '*'

The sync subcommand:

  • Creates missing worktrees at the configured dir

  • Pulls latest changes for branch worktrees

  • Leaves tag and commit worktrees unchanged (they’re immutable)

  • Skips worktrees with uncommitted changes (BLOCKED)

Dry run

Preview what would happen without making changes:

$ vcspull worktree sync --dry-run '*'

Filtering

Sync worktrees for specific repositories:

$ vcspull worktree sync 'myproject'

Use fnmatch-style patterns:

$ vcspull worktree sync 'django*'

JSON output

$ vcspull worktree sync --json '*'

NDJSON output

$ vcspull worktree sync --ndjson '*'