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§

  • Builds a tree of Git history based on the stream of changes parsed from Git
  • Parses git log --name-status to generate a stream of file changes in Git history

Structs§

  • A change made to a given file in a commit
  • A change in a file through Git history
  • A 20-byte SHA1 hash, used for identifying objects in Git.

Enums§

Type Aliases§

  • 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
  • Expresses an edge between HistoryNodes in a HistoryTree
  • A set of paths, used to track which files we care about