https://github.com/maulingmonkey/clgit
https://github.com/maulingmonkey/clgit
git rust
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/maulingmonkey/clgit
- Owner: MaulingMonkey
- License: other
- Created: 2020-09-10T22:32:44.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-11T17:18:10.000Z (almost 6 years ago)
- Last Synced: 2025-02-28T06:48:14.565Z (over 1 year ago)
- Topics: git, rust
- Language: Rust
- Homepage:
- Size: 30.3 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# cl[git]: Command Line GIT wrappers
[](https://github.com/MaulingMonkey/clgit)
[](https://crates.io/crates/clgit)
[](https://docs.rs/clgit)
[![%23![forbid(unsafe_code)]](https://img.shields.io/github/search/MaulingMonkey/clgit/unsafe%2bextension%3Ars?color=green&label=%23![forbid(unsafe_code)])](https://github.com/MaulingMonkey/clgit/search?q=forbid%28unsafe_code%29+extension%3Ars)
[](https://gist.github.com/MaulingMonkey/c81a9f18811079f19326dac4daa5a359#minimum-supported-rust-versions-msrv)
[](https://github.com/MaulingMonkey/clgit)
[](https://travis-ci.com/MaulingMonkey/clgit)
### Pros
* Fully integrates with your local [git]
* [#![forbid(unsafe_code)]](https://github.com/MaulingMonkey/clgit/search?q=forbid%28unsafe_code%29+extension%3Ars)
* No dependencies
* MSRV: 1.32.0
### Cons
* Requires a [git] installation
* Extra overhead from constantly spawning new processes
* Leaner API
License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.
[git]: https://git-scm.com/
[git2]: https://crates.io/crates/git2
[libgit2-sys]: https://crates.io/crates/libgit2-sys
[libgit2]: https://libgit2.org/
## Alternative: [git2] / [libgit2-sys] / [libgit2]
Links:
[github](https://github.com/rust-lang/git2-rs),
[docs.rs](https://docs.rs/git2/0.13.11/git2/),
[crates.io](https://crates.io/crates/git2)
### Pros
* [git2] is much more widely used/vetted/tested
* [git2] is higher performance, probably
* No need to separately install git
### Cons
* [!Sync](https://docs.rs/git2/0.13.11/git2/struct.Repository.html#impl-Sync)
* [libgit2-sys] has annoying OpenSSL dev dependencies on linux to build
* [libgit2]'s [license](https://github.com/libgit2/libgit2/blob/master/COPYING) is complicated and GPL-laden
* Multiple crates pulling in different versions of [libgit2-sys] will cause build conflicts requiring upstream patches
* Unsafe-laden FFI makes me nervous
* Reading git repositories with an old libgit2 created by a newer git command line sounds like version mismatch incompatability bugs waiting to happen.
* May not fully integrate with any custom git hooks you may have setup