Re: git push requires a worktree?

2018-05-30 Thread Duy Nguyen
On Wed, May 30, 2018 at 7:32 PM, Stefan Beller  wrote:
> * the setup code for commands that do not have the
>   NEED_WORK_TREE flag in git.c

Unless it's very urgent, I can fix it later (and hopefully soon-ish).
The problem is definitely not with setting core.worktree but with too
eagerly chdir() when you don't need it. We also have another problem
(chdir'ing too late) in the same area that led to the introduction of
chdir-notify. If I'm successful in killing chdir-notify by chdir at
the right time and with the right condition, then it should fix this
as well. I'm pretty close to it, I think.
-- 
Duy


Re: git push requires a worktree?

2018-05-30 Thread Stefan Beller
On Wed, May 30, 2018 at 10:16 AM, David Turner  wrote:
> I am doing a funny thing where I do git -C .git/modules/morx push
> fleem:fleem.

I can do that, too. :)

> This is failing in the case where I have a sparse
> checkout and the worktree directory "morx" (which is where
> .git/modules/morx/config's core.worktree points) doesn't exist.

I could reproduce that without sparseness by removing that directory.

Before removing the dir in the worktree, the push worked fine; after
removing I got a

fatal: cannot chdir to '../../../entropy': No such file or directory

> I don't know why git push cares about the worktree -- it'll happily
> work in a bare repo with no worktree at all, or if the worktree is an
> unrelated git repo or whatever.

I think we should unset the worktree config for submodules that are
not checked out. I confirm that running
  git config --unset -f .git/modules//config core.worktree
will have the push working as expected.

So I think it is not so much a bug in push, but there is
* a bug in the submodule data design: Why do we need to store
  core.worktree if there is no worktree? (I'll research if there are
  historic artefacts that would suggest we need that)
* the setup code for commands that do not have the
  NEED_WORK_TREE flag in git.c

> I can work around it, but if there's a bug, I think we should fix it.

I think so, too.


git push requires a worktree?

2018-05-30 Thread David Turner
I am doing a funny thing where I do git -C .git/modules/morx push
fleem:fleem.  This is failing in the case where I have a sparse
checkout and the worktree directory "morx" (which is where
.git/modules/morx/config's core.worktree points) doesn't exist.  

I don't know why git push cares about the worktree -- it'll happily
work in a bare repo with no worktree at all, or if the worktree is an
unrelated git repo or whatever.

I can work around it, but if there's a bug, I think we should fix it.