Re: [PATCH v4 3/4] pack-bitmap.c: break out of the bitmap loop early if not tracing
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 21, 2022, 23:27 UTC
- Message-ID
- <xmqqfsebvqg8.fsf@gitster.g>
- In-Reply-To
- <f6c5b45bdcfd05eba2984163edf38d9915255047.1669032426.git.dyroneteng@gmail.com>
Teng Long <dyroneteng@gmail.com> writes:
Show 6 quoted lines
> From: Jeff King <peff@peff.net> > > When we successfully open a bitmap, we will continue to try to open > other packs, and when trace2 is enabled, we will report any subsequent > bitmap ignored information in the log. So when we find that trace2 is > not enabled, we can actually terminate the loop early.
The above took me a few reads to understand what it wants to say, probably because the "and when trace2 is enabled" comes a bit too late to explain why "try to open other" is done. After reading it a few times, here is what I think it wants to say:
After opening a bitmap successfully, we try opening others only
because we want to report that other bitmap files are ignored in
the trace2 log. When trace2 is not enabled, we do not have to
do any of that.Show 28 quoted lines
>
> Signed-off-by: Jeff King <peff@peff.net>
> Signed-off-by: Teng Long <dyroneteng@gmail.com>
> ---
> pack-bitmap.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/pack-bitmap.c b/pack-bitmap.c
> index aaa2d9a104..3b6c2f804a 100644
> --- a/pack-bitmap.c
> +++ b/pack-bitmap.c
> @@ -527,8 +527,15 @@ static int open_pack_bitmap(struct repository *r,
> assert(!bitmap_git->map);
>
> for (p = get_all_packs(r); p; p = p->next) {
> - if (open_pack_bitmap_1(bitmap_git, p) == 0)
> + if (open_pack_bitmap_1(bitmap_git, p) == 0) {
> ret = 0;
> + /*
> + * The only reason to keep looking is to report
> + * duplicates.
> + */
> + if (!trace2_is_enabled())
> + break;
> + }
> }
>
> return ret;