gix_blame/lib.rs
1//! A crate to implement an algorithm to annotate lines in tracked files with the commits that changed them.
2//!
3//! ### Terminology
4//!
5//! * **Blamed File**
6//! - The file as it exists in `HEAD`.
7//! - the initial state with all lines that we need to associate with a *Source File*.
8//! * **Source File**
9//! - A file at a version (i.e., commit) that introduces hunks into the final 'image' of the *Blamed File*.
10//! * **Suspects**
11//! - The versions of the files that can contain hunks that we could use in the final 'image'
12//! - multiple at the same time as the commit-graph may split up.
13//! - They turn into a *Source File* once we have found an association into the *Blamed File*.
14#![deny(rust_2018_idioms, missing_docs)]
15#![forbid(unsafe_code)]
16
17mod error;
18pub use error::Error;
19mod types;
20pub use types::{BlameEntry, BlamePathEntry, BlameRanges, Options, Outcome, Statistics};
21
22mod file;
23pub use file::function::file;