pub fn evaluate_tree<G: Git + Sync>(
git: &G,
root: &Path,
base_override: Option<&str>,
fetch: bool,
) -> Vec<Entry>Expand description
Evaluate root and all (recursive) submodules. Checks run in parallel; the
returned Vec is in the fixed post-order DFS order.
base_override (the CLI --base-branch) applies only to the root; each
submodule resolves its own base (gkit.baseBranch, then remote
origin/main/origin/master) and its own gkit.solo / gkit.allowDiverged.
Every repo — root and submodules — is fetched before checking (when fetch,
i.e. unless --no-fetch), so the behind checks (R4 not-behind-remote, R6
not-behind-base) compare against fresh remote-tracking refs rather than stale
ones. (The zsh fetched only submodules; the root’s origin/<branch> could go
stale and make R4/R6 a false green — fail-closed requires a fresh fetch.)