send-pack.c: add config push.useBitmaps
commit82f67ee13fb25ebed1cd722c83de49a1ac588429
authorKyle Zhao <kylezhao@tencent.com>
Fri, 17 Jun 2022 19:06:19 +0000 (17 19:06 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Jun 2022 21:31:01 +0000 (17 14:31 -0700)
treeb16e0af4be37a31f5f0af14c2c36aba1f6b69211
parent8168d5e9c23ed44ae3d604f392320d66556453c9
send-pack.c: add config push.useBitmaps

Reachability bitmaps are designed to speed up the "counting objects"
phase of generating a pack during a clone or fetch. They are not
optimized for Git clients sending a small topic branch via "git push".
In some cases (see [1]), using reachability bitmaps during "git push"
can cause significant performance regressions.

Add a new "push.useBitmaps" configuration variable to allow users to
tell "git push" not to use bitmaps. We already have "pack.bitmaps"
that controls the use of bitmaps, but a separate configuration variable
allows the reachability bitmaps to still be used in other areas,
such as "git upload-pack", while disabling it only for "git push".

[1]: https://lore.kernel.org/git/87zhoz8b9o.fsf@evledraar.gmail.com/

Signed-off-by: Kyle Zhao <kylezhao@tencent.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config/push.txt
send-pack.c
send-pack.h
t/t5516-fetch-push.sh