| Crates.io | multipull |
| lib.rs | multipull |
| version | 0.2.1 |
| created_at | 2025-12-06 14:33:12.474948+00 |
| updated_at | 2025-12-08 20:33:39.290796+00 |
| description | Multipull keeps every multi-repo project up to date with one fast, parallel git pull. |
| homepage | https://github.com/sibellavia/multipull |
| repository | https://github.com/sibellavia/multipull |
| max_upload_size | |
| id | 1970291 |
| size | 37,440 |
Multipull keeps every multi-repo project up to date with one fast, parallel git pull. It scans the given directory, finds direct subdirectories that are git repositories, and runs the same two commands for each of them:
git status --short --branch
git pull --ff-only
cargo build --release
The release binary is written to target/release/multipull.
The easiest way to install the latest published release is from crates.io:
cargo install multipull
It copies the binary into $CARGO_HOME/bin (default ~/.cargo/bin). Ensure that directory is on your PATH.
multipull [ROOT] [--run] [--sort-by <name|duration>]
ROOT defaults to the current working directory. Multipull only touches the first level of directories inside ROOT.
--run: actually run git commands instead of dry-run.--sort-by: choose name (default) or duration for the summary table.When stdout is a TTY, multipull shows a progress bar and per-repo status lines.
When stdout is not a TTY (e.g., redirected to a file/CI logs), it emits a simple, deterministic per-repo line followed by the full command output.
After processing, multipull prints a summary table with repo name, status, exit code, and per-repo duration, plus total runtime. Sort with --sort-by.
Multipull exits with a non-zero status if any repository command fails.