git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* git push requires a worktree?
@ 2018-05-30 17:16 David Turner
  2018-05-30 17:32 ` Stefan Beller
  0 siblings, 1 reply; 3+ messages in thread
From: David Turner @ 2018-05-30 17:16 UTC (permalink / raw)
  To: git

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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: git push requires a worktree?
  2018-05-30 17:16 git push requires a worktree? David Turner
@ 2018-05-30 17:32 ` Stefan Beller
  2018-05-30 18:50   ` Duy Nguyen
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Beller @ 2018-05-30 17:32 UTC (permalink / raw)
  To: David Turner; +Cc: git

On Wed, May 30, 2018 at 10:16 AM, David Turner <novalis@novalis.org> 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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: git push requires a worktree?
  2018-05-30 17:32 ` Stefan Beller
@ 2018-05-30 18:50   ` Duy Nguyen
  0 siblings, 0 replies; 3+ messages in thread
From: Duy Nguyen @ 2018-05-30 18:50 UTC (permalink / raw)
  To: Stefan Beller; +Cc: David Turner, git

On Wed, May 30, 2018 at 7:32 PM, Stefan Beller <sbeller@google.com> 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-30 18:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-30 17:16 git push requires a worktree? David Turner
2018-05-30 17:32 ` Stefan Beller
2018-05-30 18:50   ` Duy Nguyen

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).