Hi,
On Thu, 26 Oct 2017, Ben Peart wrote:
> On 10/26/2017 5:27 PM, Alex Vandiver wrote:
> > On Thu, 26 Oct 2017, Ben Peart wrote:
> > > On 10/25/2017 9:31 PM, Alex Vandiver wrote:
> > > > diff --git a/fsmonitor.c b/fsmonitor.c
> > > > index 7c1540c05..0d26ff34f 100644
> > > > --- a/fsmonitor.c
> > > > +++ b/fsmonitor.c
> > > > @@ -121,6 +121,7 @@ static int query_fsmonitor(int version, uint64_t
> > > > last_update, struct strbuf *que
> > > > argv[3] = NULL;
> > > > cp.argv = argv;
> > > > cp.use_shell = 1;
> > > > + cp.dir = get_git_work_tree();
> > > >
> > >
> > > I'm not sure what would trigger this problem but I don't doubt that it is
> > > possible. Better to be safe than sorry. This is a better/faster solution
> > > than
> > > you're previous patch. Thank you!
> >
> > See my response on the v1 of this series -- I'm curious how you're
> > _not_ seeing it, actually. Can you not replicate just by running
> > `git status` from differing parts of the working tree?
> > - Alex
> >
>
> I saw your response but actually can't replicate it locally. I've been
> running with Watchman integration on all my repos for months and my "watchman
> watch-list" command only shows the root of the various working directories -
> no subdirectories.
Indeed, I cannot replicate either. The thing is that "status" is marked
with GIT_SETUP in git.c:
https://github.com/git-for-windows/git/blob/v2.14.3.windows.1/git.c#L465
That means that the setup_git_directory() is run, which sets the current
working directory to the top-level directory.
So there is your explanation why neither Ben nor I saw this.
And I agree with Ben that it is safer to do it the way you suggested, just
in case that the call path comes from a Git command that was not marked
with GIT_SETUP.
Ciao,
Johannes