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§
- File
Delta - A change made to a given file in a commit
- History
Node - 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)
- SHA1
Parse Error
Type Aliases§
- History
Tree - 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 aHistoryTree
- PathSet
- A set of paths, used to track which files we care about