threads / bug / 40200

Bug with worktrees...

Subject: Bug with worktrees...

## tl;dr

3 messages between Aug 27, 2015 and Aug 28, 2015.

replies: 2people: 2as markdown or json

John Szakmeister· Aug 27, 2015, 19:03 UTC · lore

My apologies if this has already been reported, but I ran into an interesting bug with worktrees. In particular, I have an alias 'st' that maps to 'status -sb'. When running this under a subdirectory of a worktree created with 'git worktree add', it fails complaining that the work tree has already been set.

Here's a script to reproduce the problem:
    git init test-repo
    cd test-repo
    git config --local alias.st 'status -sb'
    mkdir subdir
    echo file > subdir/file.txt
    git add subdir/file.txt
    git commit -m 'add file'
    git branch foo
    git worktree add ../new-worktree foo
    cd ../new-worktree/subdir
    echo "new line" >> file.txt
    echo "this will work"
    git status -sb
    echo "this fails"
    git st
When I run it, I see this:
Initialized empty Git repository in
/home/jszakmeister/tmp/test-case/test-repo/.git/
[master (root-commit) 1ec5360] add file
 1 file changed, 1 insertion(+)
 create mode 100644 subdir/file.txt
Enter ../new-worktree (identifier new-worktree)
Switched to branch 'foo'
this will work
## foo
this fails
fatal: internal error: work tree has already been set
Current worktree: /home/jszakmeister/tmp/test-case/new-worktree
New worktree: /home/jszakmeister/tmp/test-case/new-worktree/subdir
Hope this helps!
-John
Eric Sunshine· Aug 28, 2015, 02:55 UTC · re: John Szakmeister · lore

Re: Bug with worktrees...

On Thu, Aug 27, 2015 at 3:03 PM, John Szakmeister <john@szakmeister.net> wrote:
Show 28 quoted lines
> My apologies if this has already been reported, but I ran into an
> interesting bug with worktrees.  In particular, I have an alias 'st'
> that maps to 'status -sb'.  When running this under a subdirectory of
> a worktree created with 'git worktree add', it fails complaining that
> the work tree has already been set.
>
> Here's a script to reproduce the problem:
>     git init test-repo
>     cd test-repo
>     git config --local alias.st 'status -sb'
>     mkdir subdir
>     echo file > subdir/file.txt
>     git add subdir/file.txt
>     git commit -m 'add file'
>     git branch foo
>     git worktree add ../new-worktree foo
>     cd ../new-worktree/subdir
>     echo "new line" >> file.txt
>     echo "this will work"
>     git status -sb
>     echo "this fails"
>     git st
>
> When I run it, I see this:
> [...]
> fatal: internal error: work tree has already been set
> Current worktree: /home/jszakmeister/tmp/test-case/new-worktree
> New worktree: /home/jszakmeister/tmp/test-case/new-worktree/subdir

I can reproduce with 2.5.0 but not 'master'. Bisection reveals that this was fixed by d95138e (setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR, 2015-06-26), and was reported previously here [1].

[1]: http://git.661346.n2.nabble.com/Linked-workdirs-break-typo-correction-td7634347.html
John Szakmeister· Aug 28, 2015, 10:27 UTC · re: Eric Sunshine · lore

Re: Bug with worktrees...

On Thu, Aug 27, 2015 at 10:55 PM, Eric Sunshine <sunshine@sunshineco.com> wrote: [snip]

> I can reproduce with 2.5.0 but not 'master'. Bisection reveals that
> this was fixed by d95138e (setup: set env $GIT_WORK_TREE when work
> tree is set, like $GIT_DIR, 2015-06-26), and was reported previously
> here [1].
I had done a quick search but didn't turn up that thread.  Thank you Eric!
-John

← back to recent threads