Repository navigation
History and cache
A scan indexes declarations from selected commits and looks for remaining mentions in a separate compared snapshot.
| Invocation | Indexed history | Compared snapshot |
|---|---|---|
cargo refquiem |
Commits reachable from HEAD, subject to configured since. |
Working tree. |
cargo refquiem --since REV |
REV and the commits after it up to HEAD. |
Working tree. |
cargo refquiem --base BASE |
BASE and commits in BASE..HEAD. |
Working tree. |
cargo refquiem --base BASE --head HEAD |
BASE and commits in BASE..HEAD. |
The specified head commit. |
--base includes the base snapshot so declarations removed by the first change remain known. A revision comparison reads committed files without checking out the revision. Configuration is read from the current workspace.
The default comparison includes uncommitted changes and eligible untracked files. To reproduce a committed review, supply both revisions explicitly. The tutorial demonstrates the difference after repairing a reference without committing it.
Only available history can be scanned. If a checkout is shallow and the audit needs older commits, fetch the required history before running. The GitHub Action resolves and fetches its event range.
The scanner resolves current public dependency APIs and historical removed dependency APIs through Cargo metadata. Historical lockfiles supply versions when available. Resolution may need registry or Git access and Cargo's source cache.
A dependency that cannot be resolved is listed in the report's skipped warnings. Its items were not checked. Offline operation depends on the required sources already being cached.
The default cache directory is target/refquiem in the workspace. The CLI places it under CARGO_TARGET_DIR/refquiem when that environment variable is set. Library callers can set Options::cache_dir explicitly.
Parsed Rust files are keyed by blob content identifiers. Macro expansion results are keyed by their inputs. Cache files also distinguish the crate version and parser schema. A scan still walks the requested history and computes its report.
Missing, unreadable or undecodable cache entries are parsed again. Failed cache writes lose reuse without turning a successful scan into an error.
More distinct historical source trees and removed dependency APIs can require more work. Repeated runs can reuse parsing without eliminating history traversal or mention matching. No fixed speedup or memory bound applies to every repository.
--package restricts mention files to a workspace member. It does not narrow historical declaration indexing to that member. Choose a revision range when the task is a branch review rather than a whole-history audit.