My personal project and infrastructure archive
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.
 
 
 
 
 
 
nomicon/apps/servers/octopus/supergit/src/lib.rs

54 lines
1.6 KiB

//! 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`](struct.Repository.html), and enumerating or
//! fetching [`Branch`](struct.Branch.html)es that you are interested
//! in.
//!
//! ```no_run
//! 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`](crate::prelude)
//! to get started with development.
pub mod branch;
mod commit;
pub use commit::Commit;
mod diff;
pub use diff::Diff;
mod repo;
pub(crate) use repo::HashId;
pub use repo::Repository;
pub mod files;
/// Contains all core functions and types in supergit
pub mod prelude {
pub use crate::branch::{Branch, BranchIter};
pub use crate::files::{EntryType, Explorer, TreeEntry};
pub use crate::{Commit, Diff, Repository};
}