Yeah, that's a weird one. I wonder whether the partial clone filter setting should also imply a config shutting off diffstats? - Emily On Thu, Sep 22, 2022 at 7:24 AM Derrick Stolee <derrickstolee@xxxxxxxxxx> wrote: > > 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