This repo provides a library that allows crawling a directory and its children for Git repos. It reports if those repos have:
- uncommitted changes
- untracked files (can be disabled)
- unpushed commits
- unpulled commits
- added files
- deleted files
- renamed files
- untagged HEAD (optional)
I also offers a command line tool with all those features, one of which is to show all repos:
$ mrh
foo (uncommitted changes, untracked files, unpushed commits)
bar
baz (untracked files)
qux
Only show those repos that are pending action:
$ mrh --pending
foo (uncommitted changes, untracked files, unpushed commits)
baz (untracked files)
Ignore untracked files in results:
$ mrh --pending --ignore-untracked
foo (uncommitted changes, unpushed commits)
Include repos whose HEAD commits are not tagged:
$ mrh --pending --ignore-untracked --untagged-head
foo (uncommitted changes, unpushed commits, untagged HEAD)
bar (untagged HEAD)
- Ignores unreadable files/directories without warning
- Ignores bare git repositories
Following is the most easy way to install the tool (assuming you have the Rust toolchain installed):
cargo install mrh
For library usage, check them API docs.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/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.