Thanks, that is indeed a much smaller example and it seems to exhibit the same issue. Can we figure out how to fix it? Den tis 15 okt. 2024 kl 09:11 skrev Eric Sunshine <sunshine@xxxxxxxxxxxxxx>: > > On Mon, Oct 14, 2024 at 5:19 PM Taylor Blau <me@xxxxxxxxxxxx> wrote: > > On Mon, Oct 14, 2024 at 10:46:45PM +0200, David Moberg wrote: > > > 1. This command should return the worktree toplevel, not a subdirectory > > > $ git rev-parse --show-toplevel > > > /tmp/tmp.DUUAVQCIKe/repo2 > > > > > > 2. And the git grep command should return the match from dir/Makefile, > > > not Fatal Error > > > $ git grep banana > > > Makefile: git grep "banana" -- "$$BANANA" > > > > I am not sure if this is expected behavior or not, but it feels > > unintentional to me. Perhaps I am missing something funky in your > > example that is causing it to behave this way. > > This looks like unintentional behavior; probably a bug. It seems to be > triggered by `git rebase -i` setting GIT_DIR. Here's an even simpler > reproduction recipe: > > % git init foo > % cd foo > % mkdir dir > % echo foo >dir/file > % git add dir/file > % git commit -m foo > % git worktree add ../bar > % cd ../bar > % git -C dir rev-parse --show-toplevel > /.../bar > % GIT_DIR=../../foo/.git/worktrees/bar \ > git -C dir rev-parse --show-toplevel > /.../bar/dir > > The `git rev-parse --show-toplevel` invocation with GIT_DIR set is > incorrectly returning `/.../bar/dir` rather than `/.../bar`.