We discussed partial clone today during the contributor's summit. There
were some concerns about some commands that would cause over-hydration
of blobs that need server requests to resolve.
GVFS blocks "fsck", "gc", "prune", "repack", "submodule", and "worktree"
[1]. I promised I would include this list. There are a few limitations
on the arguments of the other commands, as seen in that code. These
commands that are blocked are already handled in partial clone with the
"promisor" pattern. The "worktree" limitation is only due to the
file-system virtualization layer of GVFS.
We discussed commands like "git grep" that sometimes look at the working
directory and sometimes crawls trees. That is a command that should be
considered for batching object downloads, limiting the command to
"hydrated" blobs, or limiting to a sparse checkout.
Thanks,
-Stolee
[1]
https://github.com/Microsoft/GVFS/blob/2db0c030eb257beebf8e17f1c2ce72ffb166f533/GVFS/GVFS.Hooks/Program.cs#L120-L137