Skip to main content

Module gitscan

Module gitscan 

Source
Expand description

Reading whole trees out of git, for the repo-scope pass.

Deliberately shells out instead of reusing weave-core’s git module: the repo-scope pass must keep working while weave-core’s internals move, and the only thing it needs from git is “give me every supported file at this rev”.

Every git here runs through [bounded]: a deadline, both output pipes drained on their own threads, and lazy fetching off. A check that waits on git forever is a check that never says anything, which is worse than one that says “git did not answer”.

Structs§

MergeScope
Everything the working-tree check needs: the three merge stages, the bytes on disk, the files the merge actually had to decide, and a sentence naming what was compared.
Stage
One rev’s copies of a set of paths.

Functions§

file_stages
The three merge stages of ONE path, straight out of the index (:1:/:2:/:3:) while the file is unmerged, falling back to the merge revisions once it has been staged.
merge_scope
Find the merge/rebase this repository is in — or has just finished — and read it.
trees