# 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:
```console
cargo install git-walk
```
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT license ([LICENSE-MIT](LICENSE-MIT))
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.