Crate supergit

Source
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 Branches 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