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§
- Merge
Scope - 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