Rust git utilities built on gix (pure Rust, no libgit2).
| Binary | Library module | Purpose |
|---|---|---|
bfg |
object |
Scan the object database and list the largest blobs |
git-reword |
commit |
Rewrite commit messages at the object layer without interactive rebase |
git-retime |
commit |
Spread commit timestamps across a date range on a new branch |
Install a binary from the Git repository (no local clone required):
cargo install --git https://github.com/oovm/git-tools.git --bin bfg
cargo install --git https://github.com/oovm/git-tools.git --bin git-reword
cargo install --git https://github.com/oovm/git-tools.git --bin git-retimeTrack the dev branch while the crate is pre-release:
cargo install --git https://github.com/oovm/git-tools.git --branch dev --bin bfg
cargo install --git https://github.com/oovm/git-tools.git --branch dev --bin git-reword
cargo install --git https://github.com/oovm/git-tools.git --branch dev --bin git-retimeRequires the pinned toolchain in rust-toolchain.toml (nightly + rustfmt + clippy).
git clone https://github.com/oovm/git-tools.git
cd git-tools
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release
cargo test
RUST_LOG=info cargo run --bin bfgCLI errors are rendered with miette; set RUST_LOG=debug (or info / trace) for tracing diagnostics on stderr. User-facing stdout stays plain English.
git-tools/
src/
repo.rs # repository discovery and OID helpers
object/ # ODB blob inventory
commit/ # commit history, message rewrite, and retime
bin/
bfg.rs
git-reword.rs
git-retime.rs
documentation/
bfg.md
reword.md
retime.md
GitHub Actions runs cargo fmt --check, cargo build --release, and cargo test --release on Ubuntu, macOS, and
Windows.
MPL-2.0