Skip to main content

reconcile_changes

Function reconcile_changes 

Source
pub fn reconcile_changes(
    repo_dir: &Path,
    since_sha: Option<&str>,
) -> Vec<GitChange>
Expand description

Collect every file change in repo_dir worth surfacing in a session receipt: working-tree modifications (staged or not), committed-since-since_sha changes (when provided), and untracked files.

Deduplicated across the three sources so a single file shows up once. When git diff --numstat reports additions/deletions for a path, those are attached; binary files leave them as None.

Returns an empty Vec if repo_dir isn’t a git repo or git isn’t available – callers (i.e. session close) should treat absence as “nothing to reconcile” and continue.