|
1 | 1 | # mrh - Multi-(git)Repo Helper
|
2 | 2 |
|
3 |
| -[](https://crates.io/crates/mrh) |
4 |
| -[](https://github.com/tshepang/mrh/actions) |
| 3 | +> NOTE: |
| 4 | +> This is now developed [on Radicle]. |
| 5 | +> See [the website] for more info on what that is. |
5 | 6 |
|
6 |
| -This repo provides a library that allows crawling a directory and its |
7 |
| -children for Git repos. |
8 |
| -It reports if those repos have: |
9 |
| - |
10 |
| -- uncommitted changes |
11 |
| -- unpushed commits |
12 |
| -- outdated branch |
13 |
| -- added files |
14 |
| -- deleted files |
15 |
| -- renamed files |
16 |
| -- untracked files (can be disabled) |
17 |
| -- uncommitted repos (can be disabled) |
18 |
| -- untagged HEAD (optional) |
19 |
| -- unpushed tags (optional) |
20 |
| -- unpulled tags (optional) |
21 |
| -- unfetched commits (optional) |
22 |
| - |
23 |
| -It also offers a command line tool with all those features, |
24 |
| -one of which is to show all repos: |
25 |
| - |
26 |
| - $ mrh |
27 |
| - foo (uncommitted changes, untracked files, unpushed commits) |
28 |
| - bar |
29 |
| - baz (untracked files) |
30 |
| - qux |
31 |
| - |
32 |
| -Only show those repos that have a pending action: |
33 |
| - |
34 |
| - $ mrh --pending |
35 |
| - foo (uncommitted changes, untracked files, unpushed commits) |
36 |
| - baz (untracked files) |
37 |
| - |
38 |
| -Ignore untracked files in results: |
39 |
| - |
40 |
| - $ mrh --pending --ignore-untracked |
41 |
| - foo (uncommitted changes, unpushed commits) |
42 |
| - |
43 |
| -Include repos whose HEAD commits are not tagged: |
44 |
| - |
45 |
| - $ mrh --pending --ignore-untracked --untagged-head |
46 |
| - foo (uncommitted changes, unpushed commits, untagged HEAD) |
47 |
| - bar (untagged HEAD) |
48 |
| - |
49 |
| -Check which repos have unfetched commits, |
50 |
| -a relatively slow operation when the remote is on the network: |
51 |
| - |
52 |
| - $ mrh --access-remote ssh-key |
53 |
| - qux (unfetched commits) |
54 |
| - |
55 |
| -For cases where JSON output is desired, use `--output-json` flag. |
56 |
| - |
57 |
| - |
58 |
| -## Notes |
59 |
| - |
60 |
| -- Ignores unreadable files/directories without warning |
61 |
| -- Ignores bare git repositories |
62 |
| - |
63 |
| - |
64 |
| -## Installation |
65 |
| - |
66 |
| -You will need to first install a few packages before you can build mrh. |
67 |
| -On Debian/Ubuntu, here how you do: |
68 |
| - |
69 |
| - apt install cmake libssl-dev pkg-config gcc |
70 |
| - |
71 |
| -These are needed by the __libssh2-sys__ crate, |
72 |
| -which itself is ultimately needed by the __git2__ crate. |
73 |
| - |
74 |
| -Proceed to build and install mrh |
75 |
| -(assuming you have the [Rust toolchain installed][install]): |
76 |
| - |
77 |
| - cargo install mrh |
78 |
| - |
79 |
| -JSON output format is behind a feature flag: |
80 |
| - |
81 |
| - cargo install mrh --features json |
82 |
| - |
83 |
| -NOTE: minimum required rustc is v1.74, [due to clap]. |
84 |
| - |
85 |
| -For library usage, check them [API docs][docs]. |
86 |
| - |
87 |
| -[install]: https://www.rust-lang.org/en-US/install.html |
88 |
| -[docs]: https://docs.rs/mrh |
89 |
| -[due to clap]: https://github.com/clap-rs/clap/pull/5343 |
90 |
| - |
91 |
| - |
92 |
| -## Radicle |
93 |
| - |
94 |
| -To clone this repository on [Radicle]: |
95 |
| - |
96 |
| - rad clone rad:z37EycTqZeuGMYpUSCM3v2e2qe16s |
97 |
| - |
98 |
| -[Radicle]: https://radicle.xyz |
| 7 | +[on Radicle]: https://app.radicle.at/nodes/seed.radicle.at/rad:z37EycTqZeuGMYpUSCM3v2e2qe16s |
| 8 | +[the website]: https://radicle.xyz |
99 | 9 |
|
100 | 10 | #### License
|
101 | 11 |
|
|
0 commit comments