[][src]Crate supergit

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