public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* bug: for-each-repo malfunctions in worktree due to GIT_DIR
@ 2026-02-23 22:58 Matthew Gabeler-Lee
  2026-02-24  1:52 ` Derrick Stolee
  0 siblings, 1 reply; 2+ messages in thread
From: Matthew Gabeler-Lee @ 2026-02-23 22:58 UTC (permalink / raw)
  To: git

I noticed some scripts I have that utilize `git for-each-repo` don't
work if I run them from within a git worktree, but they do work fine
from within other directories, including the parent git clone of those
worktrees. The symptom is that the command I pass to `for-each-repo`
is run as if from within the worktree each time, instead of the repos
fetched from the corresponding config entry.

After a bit of sleuthing with strace, I think I identified the cause:
$GIT_DIR is set in the `git for-each-repo` process, and gets passed to
the child git invocations it launches.

And thus, from within that worktree, `git for-each-repo
--config=foo.bar -- branch` becomes the equivalent of:

GIT_DIR=/worktree-parent/.git git -C /unrelated-repo branch

Which of course is not what the `for-each-repo` invocation would be
expected to do.

Observed with git 2.51.0 from Ubuntu 25.10. I haven't tested
explicitly with latest, but I took a quick look at git.c and
for-each-repo.c changes between there and master and didn't see
anything that looked like it would affect this behavior.

PS: please CC me on replies

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-02-24  1:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-23 22:58 bug: for-each-repo malfunctions in worktree due to GIT_DIR Matthew Gabeler-Lee
2026-02-24  1:52 ` Derrick Stolee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox