Jonathan Tan <jonathantanmy@xxxxxxxxxx> writes: > @@ -1635,6 +1635,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options > o->result.cache_tree = cache_tree(); > if (!cache_tree_fully_valid(o->result.cache_tree)) > cache_tree_update(&o->result, > + WRITE_TREE_SKIP_WORKTREE_MISSING_OK | > WRITE_TREE_SILENT | > WRITE_TREE_REPAIR); > } Hmmmm. Should this be passing the bit unconditionally? Shouldn't it be set only when we are doing lazy clone? A non-lazy clone that merely uses sparse checkout has nowhere else to turn to if it loses a blob object that currently is not necessary to complete a checkout, unlike a repository with promisor.