From: Taylor Blau <me@ttaylorr.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, Patrick Steinhardt <ps@pks.im>
Subject: Re: [PATCH 00/20] packfile: avoid using the 'the_repository' global variable
Date: Mon, 21 Oct 2024 17:03:55 -0400 [thread overview]
Message-ID: <ZxbBuyhfq1sFKBIU@nand.local> (raw)
In-Reply-To: <cover.1729504640.git.karthik.188@gmail.com>
On Mon, Oct 21, 2024 at 11:57:43AM +0200, Karthik Nayak wrote:
> The `packfile.c` file uses the global variable 'the_repository' extensively
> throughout the code. Let's remove all usecases of this, by modifying the
> required functions to accept a 'struct repository' instead. This is to clean up
> usage of global state.
>
> The first 18 patches are mostly passing a `struct repository` to each of the
> functions within `packfile.c` from other files. The last two patches move some
> global config variables and make them local. I'm not too well versed with this
> section of the code, so would be nice to get some eyes here.
I agree with the goal of this series, but I worry that as written it
will be quite disruptive to other topics on the list.
The standard way to avoid this disruption is to, for e.g. the first
change, do the following:
- Introduce a new function repo_odb_pack_name() that takes in a
'struct repository *', and rewrite odb_pack_name() in terms of it
(passing 'the_repository' in as the argument).
- Write a Coccinelle rule to replace all calls to odb_pack_name()
with calls to repo_odb_pack_name().
- Submit those patches without adjusting any non-obvious callers or
ones that are not contained to a single compilation unit that you
are already touching.
- Wait until a new development cycle has begun, run spatch on the new
rule to replace all other calls. Then optionally rename
repo_odb_pack_name() to odb_pack_name().
I think Patrick (CC'd) has done one of these transitions recently, so
I'll defer to him in case I got any of the details wrong.
In the meantime, I'm going to hold this one out of seen as it may be
disruptive in the current state.
Thanks,
Taylor
next prev parent reply other threads:[~2024-10-21 21:03 UTC|newest]
Thread overview: 184+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-21 9:57 [PATCH 00/20] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-21 9:57 ` [PATCH 01/20] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-21 21:06 ` Taylor Blau
2024-10-22 8:51 ` karthik nayak
2024-10-22 16:37 ` Taylor Blau
2024-10-21 9:57 ` [PATCH 02/20] packfile: pass down repository to `unuse_one_window` Karthik Nayak
2024-10-21 21:08 ` Taylor Blau
2024-10-21 9:57 ` [PATCH 03/20] packfile: pass down repository to `close_one_pack` Karthik Nayak
2024-10-21 9:57 ` [PATCH 04/20] packfile: pass down repository to `add_packed_git` Karthik Nayak
2024-10-21 9:57 ` [PATCH 05/20] packfile: pass down repository to `unpack_object_header` Karthik Nayak
2024-10-21 9:57 ` [PATCH 06/20] packfile: pass down repository to `get_delta_base` Karthik Nayak
2024-10-21 9:57 ` [PATCH 07/20] packfile: use provided repository in `packed_object_info` Karthik Nayak
2024-10-21 9:57 ` [PATCH 08/20] packfile: pass down repository to `unpack_compressed_entry` Karthik Nayak
2024-10-21 9:57 ` [PATCH 09/20] packfile: pass down repository to `nth_packed_object_id` Karthik Nayak
2024-10-21 9:57 ` [PATCH 10/20] packfile: pass down repository to `find_pack_entry_one` Karthik Nayak
2024-10-21 9:57 ` [PATCH 11/20] packfile: pass down repository to `fill_pack_entry` Karthik Nayak
2024-10-21 9:57 ` [PATCH 12/20] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-21 9:57 ` [PATCH 13/20] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-21 9:57 ` [PATCH 14/20] packfile: pass down repository to `is_promisor_object` Karthik Nayak
2024-10-21 9:57 ` [PATCH 15/20] object-store: pass down repository to `each_packed_object_fn` Karthik Nayak
2024-10-21 9:57 ` [PATCH 16/20] packfile: pass down repository to `open_pack_index` Karthik Nayak
2024-10-21 9:58 ` [PATCH 17/20] packfile: stop using 'the_hash_algo' Karthik Nayak
2024-10-21 9:58 ` [PATCH 18/20] packfile: pass down repository to `nth_packed_object_offset` Karthik Nayak
2024-10-21 9:58 ` [PATCH 19/20] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-21 9:58 ` [PATCH 20/20] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-21 21:03 ` Taylor Blau [this message]
2024-10-27 21:23 ` [PATCH 00/20] packfile: avoid using the 'the_repository' global variable karthik nayak
2024-10-27 23:54 ` Taylor Blau
2024-10-28 5:31 ` Jeff King
2024-10-28 13:36 ` karthik nayak
2024-10-28 15:21 ` Taylor Blau
2024-10-28 13:43 ` [PATCH v2 0/8] " Karthik Nayak
2024-10-28 13:43 ` [PATCH v2 1/8] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-28 16:05 ` Taylor Blau
2024-10-29 11:46 ` karthik nayak
2024-10-29 17:27 ` Taylor Blau
2024-10-28 13:43 ` [PATCH v2 2/8] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-28 16:08 ` Taylor Blau
2024-10-29 11:48 ` karthik nayak
2024-10-28 13:43 ` [PATCH v2 3/8] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-28 16:12 ` Taylor Blau
2024-10-28 13:43 ` [PATCH v2 4/8] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-28 16:14 ` Taylor Blau
2024-10-29 5:50 ` Jeff King
2024-10-29 12:45 ` karthik nayak
2024-10-29 17:33 ` Taylor Blau
2024-10-28 13:43 ` [PATCH v2 5/8] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-28 16:28 ` Taylor Blau
2024-10-29 16:03 ` karthik nayak
2024-10-28 13:43 ` [PATCH v2 6/8] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-28 13:43 ` [PATCH v2 7/8] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-28 16:38 ` me
2024-10-29 16:07 ` karthik nayak
2024-10-28 13:43 ` [PATCH v2 8/8] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-28 16:45 ` Taylor Blau
2024-10-29 16:09 ` karthik nayak
2024-10-29 17:48 ` Taylor Blau
2024-10-30 14:32 ` [PATCH v3 0/9] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-30 20:00 ` Taylor Blau
2024-10-30 14:32 ` [PATCH v3 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-10-30 14:32 ` [PATCH v3 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-10-30 20:13 ` Taylor Blau
2024-10-31 9:34 ` karthik nayak
2024-10-31 9:39 ` [PATCH v4 0/9] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-10-31 9:39 ` [PATCH v4 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-01 17:45 ` Jeff King
2024-11-01 19:00 ` Taylor Blau
2024-11-04 9:35 ` karthik nayak
2024-10-31 9:39 ` [PATCH v4 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-10-31 20:05 ` [PATCH v4 0/9] packfile: avoid using the 'the_repository' global variable Taylor Blau
2024-11-01 14:36 ` Taylor Blau
2024-11-01 16:07 ` karthik nayak
2024-11-01 17:29 ` Jeff King
2024-11-04 9:39 ` karthik nayak
2024-11-04 17:27 ` Jeff King
2024-11-04 11:41 ` [PATCH v5 " Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-04 11:41 ` [PATCH v5 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-04 17:38 ` Jeff King
2024-11-05 9:50 ` karthik nayak
2024-11-04 11:41 ` [PATCH v5 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-04 17:32 ` [PATCH v5 0/9] packfile: avoid using the 'the_repository' global variable Jeff King
2024-11-05 9:43 ` karthik nayak
2024-11-07 14:10 ` [PATCH v6 " Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-07 14:10 ` [PATCH v6 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-08 3:42 ` Junio C Hamano
2024-11-08 9:27 ` karthik nayak
2024-11-07 14:10 ` [PATCH v6 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-08 7:49 ` [PATCH v6 0/9] packfile: avoid using the 'the_repository' global variable Junio C Hamano
2024-11-08 9:28 ` karthik nayak
2024-11-11 11:14 ` [PATCH v7 " Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 1/9] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-13 12:41 ` Toon Claes
2024-11-13 13:04 ` karthik nayak
2024-11-13 23:56 ` Junio C Hamano
2024-11-14 10:04 ` karthik nayak
2024-11-20 22:30 ` Taylor Blau
2024-11-21 10:20 ` karthik nayak
2024-11-11 11:14 ` [PATCH v7 2/9] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 3/9] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 4/9] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 5/9] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 6/9] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-20 22:38 ` Taylor Blau
2024-11-20 22:48 ` [PATCH] packfile.c: remove unnecessary prepare_packed_git() call Taylor Blau
2024-11-21 9:13 ` Jeff King
2024-11-11 11:14 ` [PATCH v7 7/9] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-20 22:52 ` Taylor Blau
2024-11-21 9:06 ` Jeff King
2024-11-21 13:10 ` karthik nayak
2024-11-11 11:14 ` [PATCH v7 8/9] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-11 11:14 ` [PATCH v7 9/9] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-12 8:30 ` [PATCH v7 0/9] packfile: avoid using the 'the_repository' global variable Jeff King
2024-11-13 13:03 ` karthik nayak
2024-11-20 22:55 ` Taylor Blau
2024-11-21 13:12 ` karthik nayak
2024-11-22 10:08 ` [PATCH v8 00/10] " Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-26 7:25 ` Junio C Hamano
2024-11-26 10:54 ` karthik nayak
2024-11-22 10:08 ` [PATCH v8 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-22 10:08 ` [PATCH v8 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 00/10] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-11-27 9:24 ` Kristoffer Haugsbakk
2024-11-27 12:15 ` karthik nayak
2024-11-26 10:57 ` [PATCH v9 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-11-27 7:44 ` Kristoffer Haugsbakk
2024-11-27 9:09 ` karthik nayak
2024-11-26 10:57 ` [PATCH v9 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-11-26 10:57 ` [PATCH v9 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 00/10] packfile: avoid using the 'the_repository' global variable Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 01/10] packfile: add repository to struct `packed_git` Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 02/10] packfile: use `repository` from `packed_git` directly Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 03/10] packfile: pass `repository` to static function in the file Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 04/10] packfile: pass down repository to `odb_pack_name` Karthik Nayak
2024-12-03 14:43 ` [PATCH v10 05/10] packfile: pass down repository to `has_object[_kept]_pack` Karthik Nayak
2024-12-03 14:44 ` [PATCH v10 06/10] packfile: pass down repository to `for_each_packed_object` Karthik Nayak
2024-12-03 14:44 ` [PATCH v10 07/10] config: make `delta_base_cache_limit` a non-global variable Karthik Nayak
2024-12-03 14:44 ` [PATCH v10 08/10] config: make `packed_git_(limit|window_size)` non-global variables Karthik Nayak
2024-12-03 14:44 ` [PATCH v10 09/10] midx: add repository to `multi_pack_index` struct Karthik Nayak
2024-12-03 14:44 ` [PATCH v10 10/10] packfile.c: remove unnecessary prepare_packed_git() call Karthik Nayak
2024-12-03 16:46 ` [PATCH v10 00/10] packfile: avoid using the 'the_repository' global variable Kristoffer Haugsbakk
2024-12-03 23:24 ` Junio C Hamano
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=ZxbBuyhfq1sFKBIU@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
/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).