From: Stefan Beller Date: Wed, 30 May 2018 17:32:35 GMT Subject: Re: git push requires a worktree? Message-ID: In-Reply-To: <1527700562.4289.87.camel@novalis.org> 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.