> On 2019/05/07, at 11:34, Jonathan Tan <jonathantanmy@xxxxxxxxxx> wrote: > > To get an enumeration of available objects, don't you need to use only > "blob:none"? Combining filters (once that's implemented) will get all > objects only up to a certain depth. > > Combining "tree:<n>" and "blob:none" would allow us to reduce the number > of trees transmitted, but I would imagine that the savings would be > significant only for very large repositories. Do you have a specific use > case in mind that isn't solved by "blob:none"? I am interested in supporting large repositories. The savings seem to be larger than one may expect. I tried the following command on two huge repos to find out how much it costs to fetch “blob:none” for a single commit: $ git rev-list --objects --filter=blob:none HEAD: | xargs -n 2 bash -c 'git cat-file -s $1' | awk '{ total += $1; print total }' Note the “:” after HEAD - this limits it to the current commit. And the results were: - Linux: 2 684 054 bytes - Chromium: > 16 139 570 bytes (then I got tired of waiting for it to finish)