From: shejialuo <shejialuo@gmail.com>
To: AreaZR via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, AreaZR <gfunni234@gmail.com>,
Seija Kijin <doremylover123@gmail.com>,
Patrick Steinhardt <ps@pks.im>
Subject: Re: [PATCH] refs: exit early from the loop if it is not a main worktree
Date: Wed, 18 Dec 2024 21:31:16 +0800 [thread overview]
Message-ID: <Z2LOpOxu0oAY0DW3@ArchLinux> (raw)
In-Reply-To: <pull.1848.git.git.1734488445457.gitgitgadget@gmail.com>
On Wed, Dec 18, 2024 at 02:20:45AM +0000, AreaZR via GitGitGadget wrote:
> From: Seija Kijin <doremylover123@gmail.com>
>
> The is_main_worktree function just checks for !wt->id,
> but the compiler doesn't know this as it is in a different
> file, so just exit out early.
>
I think maybe we should exit out the loop early. However, the above
statement is confusing. As you have said, `is_main_worktree` checks
whether the `wt->id` is NULL. Why compiler doesn't know this? And why we
need to exit out the loop due to above reason?
> Signed-off-by: Seija Kijin <doremylover123@gmail.com>
> ---
> refs: exit early from the loop if it is not a main worktree
>
> The is_main_worktree function just checks for !wt->id, but the compiler
> doesn't know this as it is in a different file, so just exit out early.
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1848%2FAreaZR%2Fexit-early-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1848/AreaZR/exit-early-v1
> Pull-Request: https://github.com/git/git/pull/1848
>
> refs.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/refs.c b/refs.c
> index 8b713692359..cce63a618d7 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -2791,6 +2791,7 @@ static int has_worktrees(void)
> if (is_main_worktree(worktrees[i]))
> continue;
> ret = 1;
> + break;
So, when we find a linked worktree, we just return the value. From my
perspective, if we decide to optimize like this way, we could drop the
loop because the first element of the result of `get_worktrees` is the
main worktree. And we could just check whether the "worktrees[1]" is
NULL to do above.
However, I don't know whether it's a good idea to exit the loop early
in the first place. CC Patrick to help.
Thanks,
Jialuo
next prev parent reply other threads:[~2024-12-18 13:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-18 2:20 [PATCH] refs: exit early from the loop if it is not a main worktree AreaZR via GitGitGadget
2024-12-18 13:31 ` shejialuo [this message]
2024-12-18 23:52 ` Eric Sunshine
2024-12-19 1:10 ` Junio C Hamano
2024-12-19 5:54 ` Eric Sunshine
2024-12-19 6:12 ` Junio C Hamano
2024-12-27 14:34 ` Patrick Steinhardt
2024-12-27 14:34 ` 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=Z2LOpOxu0oAY0DW3@ArchLinux \
--to=shejialuo@gmail.com \
--cc=doremylover123@gmail.com \
--cc=gfunni234@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@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).