Expand description
The upload plan narrowed to the objects the push introduces, or to nothing.
What:
Narrow an upload plan from “scan these refs with git-lfs” to the exact objects the push introduces, decided in
process, or to nothing.
Why:
Most pushes add no LFS object, and then no git-lfs process and no request to the LFS server is needed. The tips come
from the plan’s refs; the commits already known to the destination are the remote’s tracking refs when the plan
trusts them, else none (the whole history of the pushed refs is scanned, which keeps the case where the tracking
refs may not describe the destination correct). When the readers decline, or an object the scan found is missing
from .git/lfs (where git-lfs push words the failure and honours lfs.allowincompletepush), the plan stays as it
was and git-lfs scans.
In TS you’d write (pseudocode):
const narrowed = narrowPlan(plan, layout); // undefined: nothing to upload; same plan: ask git-lfsFunctions§
- narrow_
plan - What: The plan to run: the same plan when the readers decline, the plan with its objects named when the scan found some, nothing when it found none. Why: See the module text. Non-Unix hosts have no readers and keep the plan.