Skip to main content

Module lfs_object_plan

Module lfs_object_plan 

Source
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-lfs

Functions§

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.