On 9/21/2022 7:36 PM, Elijah Newren wrote: > On Wed, Sep 21, 2022 at 8:22 AM ZheNing Hu <adlternative@xxxxxxxxx> wrote: > Here, we do have an object download, which occurred after the merge > completed, so there must be something happening after the merge which > needs the extra blob; if we keep reading... > >> project1/file1 | 10 ++++++++++ >> 1 file changed, 10 insertions(+) > > Ah, the 'helpful' diffstat. It downloads blobs from a promisor remote > just so we can see what has changed, including in the area of the > project we don't care about. > > (This is yet another reason it'd be nice to have a --restrict mode for > grep/diff/log/etc. for sparse-checkout uses, and an ability to make it > the default in some repo, so you could get just the diffstat within > the region of the project that you care about. We're discussing such > an idea, but it isn't implemented yet.) > >> warning: This repository uses promisor remotes. Some objects may not be loaded. >> blob_count1=11 >> blob_count2=11 >> blob_count3=12 >> >> The result shows that blob count doesn't change in git fetch, but in git merge. > > If you add --no-stat to your merge command (or set merge.stat to > false), the extra blob will not be downloaded. This is an interesting find! I wonder how many people are hitting this in the wild. Perhaps merge.stat should be added to the optional, but recommended config options in scalar.c. Thanks, -Stolee