From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Subject: [PATCH 0/2] refs/files: use heuristic to decide whether to repack with `--auto`
Date: Mon, 2 Sep 2024 15:48:29 +0200 [thread overview]
Message-ID: <cover.1725280479.git.ps@pks.im> (raw)
Hi,
I recently noticed that `git maintenance run --auto` always ends up
repacking loose references. This is because the "files" backend does not
yet have any heuristics wired up to decide whether or not packing refs
is in order. The consequence is that we always decided to pack them,
which is of course quite a waste of time.
This small patch series fixes this by introducing a new heuristic for
the "files" backend. The heuristic is rather simple: the bigger the
"packed-refs" file, the more loose refs we require before we decide to
repack. We have been using this heurisitc successfully for a long time
in Gitaly by now.
Thanks!
Patrick
Patrick Steinhardt (2):
t0601: merge tests for auto-packing of refs
refs/files: use heuristic to decide whether to repack with `--auto`
refs/files-backend.c | 75 +++++++++++++++++++++++++
refs/packed-backend.c | 18 ++++++
refs/packed-backend.h | 7 +++
t/t0601-reffiles-pack-refs.sh | 101 ++++++++++++++++++++++++++++------
4 files changed, 185 insertions(+), 16 deletions(-)
--
2.46.0.421.g159f2d50e7.dirty
next reply other threads:[~2024-09-02 13:48 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-02 13:48 Patrick Steinhardt [this message]
2024-09-02 13:48 ` [PATCH 1/2] t0601: merge tests for auto-packing of refs Patrick Steinhardt
2024-09-02 13:48 ` [PATCH 2/2] refs/files: use heuristic to decide whether to repack with `--auto` Patrick Steinhardt
2024-09-03 9:00 ` karthik nayak
2024-09-03 9:23 ` Patrick Steinhardt
2024-09-03 18:23 ` Junio C Hamano
2024-09-04 7:42 ` Patrick Steinhardt
2024-09-04 16:15 ` Junio C Hamano
2024-09-04 8:49 ` Patrick Steinhardt
2024-09-05 8:44 ` karthik nayak
2024-09-04 8:52 ` [PATCH v2 0/3] refs/files: use heuristics " Patrick Steinhardt
2024-09-04 8:53 ` [PATCH v2 1/3] wrapper: introduce `log2u()` Patrick Steinhardt
2024-09-04 8:53 ` [PATCH v2 2/3] t0601: merge tests for auto-packing of refs Patrick Steinhardt
2024-09-04 8:53 ` [PATCH v2 3/3] refs/files: use heuristic to decide whether to repack with `--auto` Patrick Steinhardt
2024-09-04 15:24 ` Junio C Hamano
2024-09-05 9:58 ` Patrick Steinhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1725280479.git.ps@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).