From: "Hardik Kumar" <hardikxk@gmail.com>
To: "Junio C Hamano" <gitster@pobox.com>,
"Hardik Kumar" <hardikxk@gmail.com>
Cc: <git@vger.kernel.org>
Subject: Re: [PATCH] builtin: replace the_repository parameter in is_bare_repository()
Date: Fri, 28 Aug 2026 01:39:43 +0530 [thread overview]
Message-ID: <DKZZYSTLY6TX.2TDQEBBOG5IAV@gmail.com> (raw)
In-Reply-To: <xmqqh5kf8hqc.fsf@gitster.g>
On Fri Aug 28, 2026 at 1:21 AM IST, Junio C Hamano wrote:
> I guess this was a bit too short, so let me explain in a bit more
> detail.
>
>>> diff --git a/builtin/blame.c b/builtin/blame.c
>>> index 48d5251c6d..dbf4b4ffc7 100644
>>> --- a/builtin/blame.c
>>> +++ b/builtin/blame.c
>>> @@ -957,7 +957,7 @@ static void build_ignorelist(struct blame_scoreboard *sb,
>>> int cmd_blame(int argc,
>>> const char **argv,
>>> const char *prefix,
>>> - struct repository *repo UNUSED)
>>> + struct repository *repo)
>>> {
>>> struct rev_info revs;
>>> char *path = NULL;
>>> @@ -1187,7 +1187,7 @@ int cmd_blame(int argc,
>>>
>>> revs.disable_stdin = 1;
>>> setup_revisions(argc, argv, &revs, NULL);
>>> - if (!revs.pending.nr && is_bare_repository(the_repository)) {
>>> + if (!revs.pending.nr && is_bare_repository(repo)) {
>>> struct commit *head_commit;
>>> struct object_id head_oid;
>
> There are a handful of uses of the_repository before the execution
> reaches here. But you left them unmodified.
>
> The original code used to consistently used the_repository. Here
> you changed it to use "repo". In practice, they are most likely the
> same when "repo" is not NULL, so in that sense, this may not be
> breaking anything, but you must ask yourself what the point is,
> unless you convert all uses of the_repository with "repo". It does
> not help libification effort at all.
My main goal here was to start small with by removing the dependence
from `the_repository`. The other instances are obivous left out which
makes the patch seem inconsistent but I suppose those functions are the
ones that require execution before the flow ever checks for the value of
`repo` and so they rely on the global one instead.
> In general, builtin/foo.c::cmd_foo() are concrete programs that work
> on specific repository (i.e., the_repository), and there is not much
> reason to rewrite the use of the_repository to use "repo" given by
> the caller which is git potty. You'd also need to deal with the
> case where "repo" is NULL (hint: "cd / && git foo -h").
Right, but would safety check be required for single instance or better
to find and work on only the specific ones which could lead to an
exception.
>
> They are quite different from other parts of the system, things
> outside builtin/, many of which are general utility/helper routines,
> many of which should be designed to work with given repository.
next prev parent reply other threads:[~2026-08-27 20:09 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 18:29 [PATCH] builtin: replace the_repository parameter in is_bare_repository() Hardik Kumar
2026-08-27 19:09 ` Junio C Hamano
2026-08-27 19:51 ` Junio C Hamano
2026-08-27 20:09 ` Hardik Kumar [this message]
2026-08-27 20:28 ` Junio C Hamano
2026-08-27 21:12 ` Ben Knoble
2026-08-27 21:39 ` Junio C Hamano
2026-08-28 11:41 ` D. Ben Knoble
2026-08-28 22:51 ` Junio C Hamano
2026-08-28 22:51 ` [PATCH 0/8] More sensible checkout/switch/restore code refactoring Junio C Hamano
2026-08-28 22:51 ` [PATCH 1/8] checkout: pass cb_option explicitly to branch name parsers Junio C Hamano
2026-08-28 22:52 ` [PATCH 2/8] checkout: validate new branch name in checkout_branch() Junio C Hamano
2026-08-28 22:52 ` [PATCH 3/8] checkout: validate stage and merge option compatibility in checkout_paths() Junio C Hamano
2026-08-28 22:52 ` [PATCH 4/8] checkout: extract option validation and pathspec helpers Junio C Hamano
2026-08-28 22:52 ` [PATCH 5/8] checkout: extract branch setup and tracking helpers Junio C Hamano
2026-08-28 22:52 ` [PATCH 6/8] checkout: restructure switch, restore, and checkout entrypoints Junio C Hamano
2026-08-28 22:52 ` [PATCH 7/8] checkout: wrap overly long lines Junio C Hamano
2026-08-28 22:55 ` Junio C Hamano
2026-08-29 2:06 ` Junio C Hamano
2026-08-28 22:52 ` [PATCH 8/8] checkout: move post_checkout_hook() to checkout.c Junio C Hamano
2026-08-28 22:57 ` Junio C Hamano
2026-08-29 2:05 ` Junio C Hamano
2026-08-29 13:24 ` [PATCH] builtin: replace the_repository parameter in is_bare_repository() D. Ben Knoble
2026-08-27 21:35 ` [PATCH] do not pass "repo" to builtin commmand implementations Junio C Hamano
2026-08-28 9:05 ` Hardik Kumar
2026-08-28 20:59 ` Junio C Hamano
2026-08-28 4:01 ` [PATCH] builtin: replace the_repository parameter in is_bare_repository() Hardik Kumar
2026-08-27 19:56 ` Hardik Kumar
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=DKZZYSTLY6TX.2TDQEBBOG5IAV@gmail.com \
--to=hardikxk@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.