Crate git_historian

Source
Expand description

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 Aliases§

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