Expand description
Git repository scanner using gitoxide (gix).
Provides commit walking, tree traversal, and blob reading for the scan pipeline.
§Performance
- Pure Rust:
gixavoids FFI overhead and is faster thanlibgit2. - Subtree caching:
SubtreeCachemakes tree walksO(changed_dirs)instead ofO(all_dirs)across consecutive commits. - Lazy iteration: Ancestor walks use iterators to stay memory-friendly.
Structs§
- Subtree
Cache - Cache for subtree walk results. Persists across commits so unchanged directory subtrees (same tree OID) are never re-traversed.
Functions§
- get_
commits_ in_ order - Returns the list of valid commits in order.
- get_
commits_ since - Returns commits from HEAD to a known commit (exclusive).
- get_
tree_ for_ commit - Returns the tree ObjectId for a given commit hash.
- walk_
tree_ entries_ cached - Walks a Git tree with subtree-level caching.