Thread (4 messages) 4 messages, 4 authors, 2024-12-27

Re: [PATCH] refs: exit early from the loop if it is not a main worktree

From: shejialuo <hidden>
Date: 2024-12-18 13:30:36

On Wed, Dec 18, 2024 at 02:20:45AM +0000, AreaZR via GitGitGadget wrote:
From: Seija Kijin <redacted>

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?
quoted hunk ↗ jump to hunk
Signed-off-by: Seija Kijin <redacted>
---
    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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help