Skip to main content

filter_process

Function filter_process 

Source
pub fn filter_process<R, W, F>(
    store: &Store,
    input: R,
    output: W,
    fetch: F,
    skip_smudge: bool,
    clean_extensions: &[CleanExtension],
    smudge_extensions: &[SmudgeExtension],
    smudge_path_filter: &dyn Fn(&str) -> bool,
) -> Result<(), FilterProcessError>
where R: Read, W: Write, F: FnMut(&Pointer) -> Result<(), FetchError>,
Expand description

Run the filter-process protocol against input/output (typically stdin/stdout). Returns when git closes its end of the pipe.

fetch is called when a smudge request hits an object that isn’t in the local store; see smudge_with_fetch for semantics. If fetching is not supported in the caller’s context, pass a closure that always errors — the protocol will then surface those smudges as status=error to git, same as if smudge hit ObjectMissing.

skip_smudge reflects the upstream GIT_LFS_SKIP_SMUDGE env var. When true, smudge requests pass the pointer text through unchanged: the working-tree file ends up holding pointer text and git lfs pull (or another smudge run) is the recovery path. Clean requests are unaffected.