From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Markus Gerstel <2025@uxp.de>,
Derrick Stolee <stolee@gmail.com>
Subject: Re: [PATCH 0/6] builtin/maintenance: introduce "reflog-expire" task
Date: Thu, 27 Feb 2025 10:22:22 +0100 [thread overview]
Message-ID: <Z8Auzjw29t91tEuq@pks.im> (raw)
In-Reply-To: <xmqqikow9o5d.fsf@gitster.g>
On Wed, Feb 26, 2025 at 05:23:10PM -0800, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
> > this patch series introduces a new "reflog-expire" task to
> > git-maintenance(1). This task is designed to plug a gap when the "gc"
> > task is disabled, as there is no way to expire reflog entries in that
> > case.
>
> I think in the longer run, "maintenance" users should be able to
> treat the single ball of wax "gc" task as a mere short-hand to
> invoke a set of often used maintenance tasks, and we would want to
> break down the component tasks grouped in it and make them
> independently available. This is a good step along that journey.
>
> Are there other things that the "gc" task covers that are not
> available elsewhere? "git gc --help" suggests there are things
> related to pruning (unused?) worktrees and stale rerere database
> entries.
These are more gaps indeed. I'm happy to work on them once this patch
series has landed. I don't know about any other gaps.
> Another thing, how much control do we want to cede to the end users
> the choice of tasks and order of running them? When you are
> expiring stale reflog entries and repacking the object database to
> discard unreachable objects, it would only make sense to do them in
> the order I just said. We could leave it up to the end users, but
> that may be doing disservice to them.
This is a good question. From my perspective, there are three classes of
users here:
- Those that don't care and don't have special needs. This class of
users is unlikely to tweak things anyway.
- Those that aren't deeply familiar with how Git works, but who do
have special needs e.g. because they have huge repositories. This
class of users may need to tweak configuration, but we should give
them an _easy_ way to do so. Configuring individual tasks ain't that
from my perspective.
- Power users that are deeply familiar with how Git works. This class
of users may even want to tweak the order in which specific tasks
run.
"maintenance.strategy" exists to cater to the second class of users and
allows them to configure the high-level strategy used to maintain repos.
I don't know whether it's honored by `git maintenance run`, but I think
it is (and if it's not it should be).
That to me means that the configuration for individual tasks for power
users can be as flexible as possible, including configuring the order in
which tasks are run.
Patrick
next prev parent reply other threads:[~2025-02-27 9:22 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 15:24 [PATCH 0/6] builtin/maintenance: introduce "reflog-expire" task Patrick Steinhardt
2025-02-26 15:24 ` [PATCH 1/6] reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options` Patrick Steinhardt
2025-02-26 15:24 ` [PATCH 2/6] builtin/reflog: stop storing default reflog expiry dates globally Patrick Steinhardt
2025-03-04 23:23 ` Justin Tobler
2025-02-26 15:24 ` [PATCH 3/6] builtin/reflog: stop storing per-reflog " Patrick Steinhardt
2025-03-04 23:41 ` Justin Tobler
2025-03-06 10:37 ` Patrick Steinhardt
2025-03-06 23:17 ` Justin Tobler
2025-02-26 15:24 ` [PATCH 4/6] builtin/reflog: make functions regarding `reflog_expire_options` public Patrick Steinhardt
2025-02-26 15:24 ` [PATCH 5/6] builtin/gc: split out function to expire reflog entries Patrick Steinhardt
2025-02-26 15:24 ` [PATCH 6/6] builtin/maintenance: introduce "reflog-expire" task Patrick Steinhardt
2025-02-26 17:50 ` [PATCH 0/6] " Ramsay Jones
2025-02-26 18:40 ` Junio C Hamano
2025-02-26 18:54 ` Ramsay Jones
2025-02-27 9:10 ` Patrick Steinhardt
2025-02-27 1:23 ` Junio C Hamano
2025-02-27 9:22 ` Patrick Steinhardt [this message]
2025-02-27 17:01 ` Junio C Hamano
2025-02-28 8:35 ` Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 " Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 1/6] reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options` Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 2/6] builtin/reflog: stop storing default reflog expiry dates globally Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 3/6] builtin/reflog: stop storing per-reflog " Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 4/6] builtin/reflog: make functions regarding `reflog_expire_options` public Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 5/6] builtin/gc: split out function to expire reflog entries Patrick Steinhardt
2025-04-08 6:22 ` [PATCH v2 6/6] builtin/maintenance: introduce "reflog-expire" task 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=Z8Auzjw29t91tEuq@pks.im \
--to=ps@pks.im \
--cc=2025@uxp.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=stolee@gmail.com \
/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).