Skip to main content

evaluate_tree

Function evaluate_tree 

Source
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.)