Expand description
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.
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.
Modules§
- branch
- Type system for working with git branches
- files
- File tree abstractions
- prelude
- Contains all core functions and types in supergit
Structs§
- Commit
- Represent a commit on a repository
- Diff
- A diff between two commits
- Repository
- Represents a git repository with lazy data loading