Advanced

Parallel sync

By default, repos-manager syncs 4 repos at a time. Adjust with:

repos-manager sync --all --parallel 8

Or set it in your config file:

{ "parallel": 8 }

For large organizations (100+ repos), higher parallelism helps. For slow connections, lower it to avoid timeouts.

Self-update

repos-manager can update itself:

repos-manager update

If running from a git clone, it fetches and fast-forward pulls from origin/main. If installed via make install, it clones the latest version to a temp directory and reinstalls.

Auto-generated sourceme files

After each sync, repos-manager generates sourceme, sourceme.zsh, and sourceme.fish files in each host directory. These provide the repos-manager function when you cd into the directory.

Combined with a sourceme auto-loader, the function loads and unloads automatically as you navigate your workspace.

Nix flake

repos-manager ships as a Nix flake for reproducible environments:

# Run directly
nix run github:Dxsk/repos-manager -- github sync

# Use as a template workspace
mkdir ~/my-repos && cd ~/my-repos
nix flake init -t github:Dxsk/repos-manager
nix develop

The dev shell provides repos-manager with all dependencies and sets BASE_DIR to the current directory.

Dotenv integration

If you use Dxsk/dotenv (GNU Stow-based dotfiles), repos-manager integrates via scripts/projects.conf:

git@github.com:Dxsk/repos-manager.git  make install

The dotenv install script clones and installs repos-manager automatically on new machines.