From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 06/11] refs/reftable: allow configuring block size
Date: Fri, 10 May 2024 12:13:41 +0200 [thread overview]
Message-ID: <Zj3zVQbASOx4EPgu@tanuki> (raw)
In-Reply-To: <CAOLa=ZR7=hVXyGr2iSZW2C8mtwR2SHLikuCVKS-qTB7AE+0+hQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2571 bytes --]
On Fri, May 10, 2024 at 02:29:19AM -0700, Karthik Nayak wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
> [snip]
>
> > @@ -230,6 +231,23 @@ static int read_ref_without_reload(struct reftable_stack *stack,
> > return ret;
> > }
> >
> > +static int reftable_be_config(const char *var, const char *value,
> > + const struct config_context *ctx,
> > + void *_opts)
> > +{
> > + struct reftable_write_options *opts = _opts;
> > +
> > + if (!strcmp(var, "reftable.blocksize")) {
> > + unsigned long block_size = git_config_ulong(var, value, ctx->kvi);
> > + if (block_size > 16777215)
> > + die("reftable block size cannot exceed 16MB");
> > + opts->block_size = block_size;
> > + return 0;
>
> nit: unecessary return
It's unnecessary indeed. I first wanted to defend this, but then I
noticed that I'm also being inconsistent here where the last branch
won't have `return 0;` at the end of this series.
Will remove.
> > + }
> > +
> > + return 0;
> > +}
> > +
> > static struct ref_store *reftable_be_init(struct repository *repo,
> > const char *gitdir,
> > unsigned int store_flags)
> > @@ -245,12 +263,24 @@ static struct ref_store *reftable_be_init(struct repository *repo,
> > base_ref_store_init(&refs->base, repo, gitdir, &refs_be_reftable);
> > strmap_init(&refs->worktree_stacks);
> > refs->store_flags = store_flags;
> > - refs->write_options.block_size = 4096;
> > +
>
> Nit: do we need this newline?
I think it's easier to read that way.
> > refs->write_options.hash_id = repo->hash_algo->format_id;
> > refs->write_options.default_permissions = calc_shared_perm(0666 & ~mask);
> > refs->write_options.disable_auto_compact =
> > !git_env_bool("GIT_TEST_REFTABLE_AUTOCOMPACTION", 1);
> >
> > + git_config(reftable_be_config, &refs->write_options);
> > +
> > + /*
> > + * It is somewhat unfortunate that we have to mirror the default block
> > + * size of the reftable library here. But given that the write options
> > + * wouldn't be updated by the library here, and given that we require
> > + * the proper block size to trim reflog message so that they fit, we
> > + * must set up a proper value here.
> > + */
> > + if (!refs->write_options.block_size)
> > + refs->write_options.block_size = 4096;
> > +
>
> Wouldn't it be to import and use `reftable/constants.h` here?
Headers in the "reftable/" directory which do not have a "reftable-"
prefix are considered to be private. So those shouldn't be used.
Patrick
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-05-10 10:13 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-02 6:51 [PATCH 00/11] reftable: expose write options as config Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 01/11] reftable: consistently refer to `reftable_write_options` as `opts` Patrick Steinhardt
2024-05-10 9:00 ` Karthik Nayak
2024-05-10 10:13 ` Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 02/11] reftable: consistently pass write opts as value Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 03/11] reftable/writer: drop static variable used to initialize strbuf Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 04/11] reftable/writer: improve error when passed an invalid block size Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 05/11] reftable/dump: support dumping a table's block structure Patrick Steinhardt
2024-05-02 6:51 ` [PATCH 06/11] refs/reftable: allow configuring block size Patrick Steinhardt
2024-05-10 9:29 ` Karthik Nayak
2024-05-10 10:13 ` Patrick Steinhardt [this message]
2024-05-02 6:52 ` [PATCH 07/11] reftable: use `uint16_t` to track restart interval Patrick Steinhardt
2024-05-02 6:52 ` [PATCH 08/11] refs/reftable: allow configuring " Patrick Steinhardt
2024-05-02 6:52 ` [PATCH 09/11] refs/reftable: allow disabling writing the object index Patrick Steinhardt
2024-05-02 6:52 ` [PATCH 10/11] reftable: make the compaction factor configurable Patrick Steinhardt
2024-05-10 9:55 ` Karthik Nayak
2024-05-10 10:13 ` Patrick Steinhardt
2024-05-02 6:52 ` [PATCH 11/11] refs/reftable: allow configuring geometric factor Patrick Steinhardt
2024-05-10 9:58 ` Karthik Nayak
2024-05-10 10:13 ` Patrick Steinhardt
2024-05-02 7:29 ` [PATCH 00/11] reftable: expose write options as config Patrick Steinhardt
2024-05-03 20:38 ` Junio C Hamano
2024-05-06 6:51 ` Patrick Steinhardt
2024-05-06 21:29 ` Justin Tobler
2024-05-10 10:00 ` Karthik Nayak
2024-05-10 10:14 ` Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 " Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 01/11] reftable: consistently refer to `reftable_write_options` as `opts` Patrick Steinhardt
2024-05-10 21:03 ` Junio C Hamano
2024-05-10 10:29 ` [PATCH v2 02/11] reftable: consistently pass write opts as value Patrick Steinhardt
2024-05-10 21:11 ` Junio C Hamano
2024-05-13 7:53 ` Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 03/11] reftable/writer: drop static variable used to initialize strbuf Patrick Steinhardt
2024-05-10 21:19 ` Junio C Hamano
2024-05-10 10:29 ` [PATCH v2 04/11] reftable/writer: improve error when passed an invalid block size Patrick Steinhardt
2024-05-10 21:25 ` Junio C Hamano
2024-05-13 7:53 ` Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 05/11] reftable/dump: support dumping a table's block structure Patrick Steinhardt
2024-05-13 22:42 ` Junio C Hamano
2024-05-10 10:29 ` [PATCH v2 06/11] refs/reftable: allow configuring block size Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 07/11] reftable: use `uint16_t` to track restart interval Patrick Steinhardt
2024-05-13 22:42 ` Junio C Hamano
2024-05-14 4:54 ` Patrick Steinhardt
2024-05-10 10:29 ` [PATCH v2 08/11] refs/reftable: allow configuring " Patrick Steinhardt
2024-05-10 21:57 ` Junio C Hamano
2024-05-13 7:54 ` Patrick Steinhardt
2024-05-10 10:30 ` [PATCH v2 09/11] refs/reftable: allow disabling writing the object index Patrick Steinhardt
2024-05-10 10:30 ` [PATCH v2 10/11] reftable: make the compaction factor configurable Patrick Steinhardt
2024-05-10 22:12 ` Junio C Hamano
2024-05-13 7:54 ` Patrick Steinhardt
2024-05-13 16:22 ` Junio C Hamano
2024-05-14 4:54 ` Patrick Steinhardt
2024-05-10 10:30 ` [PATCH v2 11/11] refs/reftable: allow configuring geometric factor Patrick Steinhardt
2024-05-10 11:43 ` [PATCH v2 00/11] reftable: expose write options as config Karthik Nayak
2024-05-13 8:17 ` [PATCH v3 " Patrick Steinhardt
2024-05-13 8:17 ` [PATCH v3 01/11] reftable: consistently refer to `reftable_write_options` as `opts` Patrick Steinhardt
2024-05-13 8:17 ` [PATCH v3 02/11] reftable: pass opts as constant pointer Patrick Steinhardt
2024-05-17 8:02 ` Karthik Nayak
2024-05-21 23:22 ` Justin Tobler
2024-05-22 7:19 ` Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 03/11] reftable/writer: drop static variable used to initialize strbuf Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 04/11] reftable/writer: improve error when passed an invalid block size Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 05/11] reftable/dump: support dumping a table's block structure Patrick Steinhardt
2024-05-21 23:35 ` Justin Tobler
2024-05-22 7:19 ` Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 06/11] refs/reftable: allow configuring block size Patrick Steinhardt
2024-05-17 8:09 ` Karthik Nayak
2024-05-13 8:18 ` [PATCH v3 07/11] reftable: use `uint16_t` to track restart interval Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 08/11] refs/reftable: allow configuring " Patrick Steinhardt
2024-05-21 23:50 ` Justin Tobler
2024-05-22 7:19 ` Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 09/11] refs/reftable: allow disabling writing the object index Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 10/11] reftable: make the compaction factor configurable Patrick Steinhardt
2024-05-13 8:18 ` [PATCH v3 11/11] refs/reftable: allow configuring geometric factor Patrick Steinhardt
2024-05-17 8:14 ` [PATCH v3 00/11] reftable: expose write options as config Karthik Nayak
2024-05-17 8:26 ` Patrick Steinhardt
2024-05-21 23:54 ` Justin Tobler
2024-05-22 7:19 ` 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=Zj3zVQbASOx4EPgu@tanuki \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=karthik.188@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).