In some cases, such as GitHub Codespaces, background prefetches are not running to keep the local repository up-to-date with the prefetch packfiles available from cache servers in the GVFS Protocol. This can cause the next "sync" operation (git fetch && git checkout or git pull) to be slow as it downloads a lot of prefetch data.
On the Codespace side, we can manage the post-start operations to trigger maintenance activities, but that may not complete before the user wants to sync in this way.
I propose that we add a --[no-]gvfs-prefetch option to git fetch and git pull that helps to avoid the prefetch packfile download during this operation and moves directly to the remote ref download (and the git merge or git rebase in the case of git pull). The maintenance activities can populate the prefetch packfiles asynchronously so the user will eventually have access to full history information.
In some cases, such as GitHub Codespaces, background prefetches are not running to keep the local repository up-to-date with the prefetch packfiles available from cache servers in the GVFS Protocol. This can cause the next "sync" operation (
git fetch && git checkoutorgit pull) to be slow as it downloads a lot of prefetch data.On the Codespace side, we can manage the post-start operations to trigger maintenance activities, but that may not complete before the user wants to sync in this way.
I propose that we add a
--[no-]gvfs-prefetchoption togit fetchandgit pullthat helps to avoid the prefetch packfile download during this operation and moves directly to the remote ref download (and thegit mergeorgit rebasein the case ofgit pull). The maintenance activities can populate the prefetch packfiles asynchronously so the user will eventually have access to full history information.