Theory

Updated

October 30, 2026

Theory: Scale is Reachability and Pack Shape

“Large” is commit count, tree width, blob size, and clone graph — not only disk bytes. Shallow, sparse, and partial clones cut different axes.

Invariants

  1. Shallow (--depth) cuts history length.
  2. Sparse checkout cuts which paths materialize in the working tree.
  3. Partial clone cuts which blobs you download until needed (--filter).
  4. Commit-graph and bitmaps speed log and fetch on the server and client.
full clone     all commits, trees, blobs
shallow        last N commits
sparse         all objects, few WD paths
partial        delayed blobs

What can break

  • Shallow clone then needing blame across all history.
  • LFS-sized files without LFS.

How to read this chapter

What large means, the three clone cuts, git config tuning.