git-walk 0.0.1

Read-only discovery of git repositories: walk a file tree and rank the checkouts it finds with cheap git metadata, without invoking git.
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 21.23 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 238.3 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 2s Average build duration of successful builds.
  • all releases: 2s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ggueret

git-walk

Read-only discovery of git repositories: walk a file tree and return the checkouts it finds, ranked, each annotated with cheap git metadata, without ever invoking the git binary.

"walk" here is not a revwalk. In git, a walk usually means traversing the commit graph (a revwalk). git-walk walks the filesystem to discover repositories, not history.

Status

Work in progress. The project skeleton is in place, but repository discovery is not implemented yet. The public API and the CLI output are expected to change before the first functional release.

What it will do

  • Walk a directory tree and find git checkouts (working trees and bare repos).
  • Annotate each repository with cheap, read-only metadata (current branch, HEAD, clean/dirty heuristics) read directly from the .git directory.
  • Rank the discovered repositories and stream them as NDJSON from the CLI.

Everything read-only: git-walk never shells out to git, and never writes to the repositories it discovers.

Install

Not published as a functional release yet. Once it is:

cargo install git-walk

License

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.