You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
<div align="center">
|
|
<img src="logo.png" width="256px"/>
|
|
<h1>supergit</h1>
|
|
</div>
|
|
|
|
|
|
Strongly typed git repository explorer This library provides a more
|
|
Rustic interface for git repositories, built on the `git2` bindings.
|
|
If you want more low-level access to your repository, consider using
|
|
that library instead.
|
|
|
|
supergit aims to make queries into a git repo as typed and easy as
|
|
possible. Start by creating a `Repository`, and enumerating or
|
|
fetching `Branch`es that you are interested in.
|
|
|
|
```rust
|
|
use supergit::Repository;
|
|
|
|
let r = Repository::open("/path/to/repo").unwrap();
|
|
println!("{:?}", r.branches());
|
|
|
|
let branch = r.branch("main").unwrap();
|
|
let head = branch.head();
|
|
println!("{}: {}", head.id(), head.summary().unwrap_or("".into()));
|
|
```
|
|
|
|
## Library structure
|
|
|
|
The main abstraction layer for a repository is a set of iterators,
|
|
over branches, commits, and files in commit trees. Some functions
|
|
implemented in `supergit` are quite computationally intensive; they
|
|
are marked as such with their runtime cost! It's recommended to
|
|
include `supergit::prelude` to get started with development.
|
|
|