threads / bug / 41139

[BUG?] worktree setup broken in subdirs with git alias

Subject: [BUG?] worktree setup broken in subdirs with git alias

## tl;dr

6 messages between Jan 7, 2016 and Jan 7, 2016.

replies: 5people: 2as markdown or json

Michael J Gruber· Jan 7, 2016, 07:15 UTC · lore
Hi there,

sorry I can't dig deeper now, but the worktree code from next seems to get confused now as soon as you cd to a subdir of a worktree (other than the main worktree) and use an alias:

git help ss `git ss' is aliased to `status -s -b' [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git status -s -b ## exam [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git ss fatal: internal error: work tree has already been set Current worktree: /home/mjg/Teaching/LUK New worktree: /home/mjg/Teaching/LUK/Biomath-WS15

This is inside the subdir "Biomath-WS15" of the worktree residing in ".../LUK".

It wasn't like that last year ;)

Something about setting GIT_DIR and the like in the environment must have changed (for aliases), badly interacting with the worktree code.

Michael
Duy Nguyen· Jan 7, 2016, 09:26 UTC · re: Michael J Gruber · lore

Re: [BUG?] worktree setup broken in subdirs with git alias

On Thu, Jan 7, 2016 at 2:15 PM, Michael J Gruber <git@drmicha.warpmail.net> wrote:

Show 12 quoted lines
> Hi there,
>
> sorry I can't dig deeper now, but the worktree code from next seems to
> get confused now as soon as you cd to a subdir of a worktree (other than
> the main worktree) and use an alias:
>
> git help ss
> `git ss' is aliased to `status -s -b'
> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git status -s -b
> ## exam
> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git ss
> fatal: internal error: work tree has already been set

You forgot to mention what version you used. But it's probably related to d95138e (setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR - 2015-06-26). This commit fixed your problem (and was released) but it introduced some other regressions so it's been reverted in 'next'. 'pu' has a re-fix on top of the revert.

Show 12 quoted lines
> Current worktree: /home/mjg/Teaching/LUK
> New worktree: /home/mjg/Teaching/LUK/Biomath-WS15
>
> This is inside the subdir "Biomath-WS15" of the worktree residing in
> ".../LUK".
>
> It wasn't like that last year ;)
>
> Something about setting GIT_DIR and the like in the environment must
> have changed (for aliases), badly interacting with the worktree code.
>
> Michael
-- 
Duy
Duy Nguyen· Jan 7, 2016, 09:31 UTC · re: Duy Nguyen · lore

Re: [BUG?] worktree setup broken in subdirs with git alias

On Thu, Jan 7, 2016 at 4:26 PM, Duy Nguyen <pclouds@gmail.com> wrote:
> You forgot to mention what version you used.
Gaaah i need to work on my reading skills. You did mention 'next' in
>> sorry I can't dig deeper now, but the worktree code from next seems to

So it matches my expectation. Merge branch nd/clear-gitenv-upon-use-of-alias to fix it.

-- 
Duy
Michael J Gruber· Jan 7, 2016, 09:40 UTC · re: Duy Nguyen · lore

Re: [BUG?] worktree setup broken in subdirs with git alias

Duy Nguyen venit, vidit, dixit 07.01.2016 10:26:
Show 20 quoted lines
> On Thu, Jan 7, 2016 at 2:15 PM, Michael J Gruber
> <git@drmicha.warpmail.net> wrote:
>> Hi there,
>>
>> sorry I can't dig deeper now, but the worktree code from next seems to
>> get confused now as soon as you cd to a subdir of a worktree (other than
>> the main worktree) and use an alias:
>>
>> git help ss
>> `git ss' is aliased to `status -s -b'
>> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git status -s -b
>> ## exam
>> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git ss
>> fatal: internal error: work tree has already been set
> 
> You forgot to mention what version you used. But it's probably related
> to d95138e (setup: set env $GIT_WORK_TREE when work tree is set, like
> $GIT_DIR - 2015-06-26). This commit fixed your problem (and was
> released) but it introduced some other regressions so it's been
> reverted in 'next'. 'pu' has a re-fix on top of the revert.

Well, I mentioned "from next", which I admit is not super-precise (it's next not older than a day or two, plus some local additions). In fact it is:

ef7b32d (Sync with 2.7, 2016-01-04)

which "has" d95138e (as per git branch contains) but also df1e6ea87 which reverts it. (I guess --really-contains would be neat but difficult.)

So while I didn't notice the problems that lead to the revert, I noticed the problems the revert created... Early adopters' luck.

As for the fix on pu, do you mean that one: ac78663 (run-command: don't warn on SIGPIPE deaths, 2015-12-29)

I'll give it a shot then.
Michael
Duy Nguyen· Jan 7, 2016, 09:48 UTC · re: Michael J Gruber · lore

Re: [BUG?] worktree setup broken in subdirs with git alias

On Thu, Jan 7, 2016 at 4:40 PM, Michael J Gruber <git@drmicha.warpmail.net> wrote:

> As for the fix on pu, do you mean that one:
> ac78663 (run-command: don't warn on SIGPIPE deaths, 2015-12-29)

And the three commits before that, if you cherry-pick instead of merge, so 0d5466d to ac78663

-- 
Duy
Michael J Gruber· Jan 7, 2016, 09:49 UTC · re: Michael J Gruber · lore

Re: [BUG?] worktree setup broken in subdirs with git alias

Michael J Gruber venit, vidit, dixit 07.01.2016 10:40:
Show 39 quoted lines
> Duy Nguyen venit, vidit, dixit 07.01.2016 10:26:
>> On Thu, Jan 7, 2016 at 2:15 PM, Michael J Gruber
>> <git@drmicha.warpmail.net> wrote:
>>> Hi there,
>>>
>>> sorry I can't dig deeper now, but the worktree code from next seems to
>>> get confused now as soon as you cd to a subdir of a worktree (other than
>>> the main worktree) and use an alias:
>>>
>>> git help ss
>>> `git ss' is aliased to `status -s -b'
>>> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git status -s -b
>>> ## exam
>>> [mjg@skimbleshanks Biomath-WS15 (exam $)]✓ git ss
>>> fatal: internal error: work tree has already been set
>>
>> You forgot to mention what version you used. But it's probably related
>> to d95138e (setup: set env $GIT_WORK_TREE when work tree is set, like
>> $GIT_DIR - 2015-06-26). This commit fixed your problem (and was
>> released) but it introduced some other regressions so it's been
>> reverted in 'next'. 'pu' has a re-fix on top of the revert.
> 
> Well, I mentioned "from next", which I admit is not super-precise (it's
> next not older than a day or two, plus some local additions). In fact it is:
> 
> ef7b32d (Sync with 2.7, 2016-01-04)
> 
> which "has" d95138e (as per git branch contains) but also df1e6ea87
> which reverts it. (I guess --really-contains would be neat but difficult.)
> 
> So while I didn't notice the problems that lead to the revert, I noticed
> the problems the revert created... Early adopters' luck.
> 
> As for the fix on pu, do you mean that one:
> ac78663 (run-command: don't warn on SIGPIPE deaths, 2015-12-29)
> 
> I'll give it a shot then.
> 
> Michael

Meanwhile you had answered my question before I even asked it. Great user support over here :)

And hooray, merging ac78663 saves my problem, thanks!

Since I didn't notice the problems that the earlier fix caused I can't say whether the newer fix avoids them.

Michael

← back to recent threads