Crate git_historian [] [src]

This crate analyzes a Git repository (by parsing git log --name-status), then builds a tree of the history for a provided list of files.

At each node (corresponding to a delta in the file's history), a user-provided callback is issued to gather desired information.

See main.rs for a quick demo.

Modules

history

Builds a tree of Git history based on the stream of changes parsed from Git

parsing

Parses git log --name-status to generate a stream of file changes in Git history

Structs

FileDelta

A change made to a given file in a commit

HistoryNode

A change in a file through Git history

SHA1

A 20-byte SHA1 hash, used for identifying objects in Git.

Enums

Change

A change to a file in Git (or at least the kinds we care about)

SHA1ParseError

Type Definitions

HistoryTree

For each key in the map, the value is a branch of a tree (i.e. a linked list) of all changes. This extends past name changes

Link

Expresses an edge between HistoryNodes in a HistoryTree

PathSet

A set of paths, used to track which files we care about