Thread (3 messages) 3 messages, 3 authors, 2018-05-30

Re: git push requires a worktree?

From: Stefan Beller <hidden>
Date: 2018-05-30 17:32:40

On Wed, May 30, 2018 at 10:16 AM, David Turner [off-list ref] 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/<name>/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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help