git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/4] fsmonitor: Set the PWD to the top of the working tree

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 29, 2017, 12:27 UTC
Message-ID
<alpine.DEB.2.21.1.1710291318300.6482@virtualbox>
In-Reply-To
<16467d0e-b585-17d7-fb22-3eed7efe6747@gmail.com>
Hi,
On Thu, 26 Oct 2017, Ben Peart wrote:
Show 30 quoted lines
> 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

Previous: Alex VandiverNext: Alex Vandiver
Message 8 of 17 in “fsmonitor fixes”
  1. 0/4 fsmonitor fixesAlex Vandiver, Oct 26, 2017
  2. 1/4 fsmonitor: Set the PWD to the top of the working treeAlex Vandiver, Oct 26, 2017
  3. Alex VandiverOct 26, 2017
  4. Ben PeartOct 26, 2017
  5. Alex VandiverOct 26, 2017
  6. Ben PeartOct 27, 2017
  7. Alex VandiverOct 27, 2017
  8. Johannes SchindelinOct 29, 2017
  9. 2/4 fsmonitor: Don't bother pretty-printing JSON from watchmanAlex Vandiver, Oct 26, 2017
  10. Ben PeartOct 26, 2017
  11. Ben PeartOct 26, 2017
  12. Alex VandiverOct 26, 2017
  13. Ben PeartOct 27, 2017
  14. 3/4 fsmonitor: Document GIT_TRACE_FSMONITORAlex Vandiver, Oct 26, 2017
  15. 4/4 fsmonitor: Delay updating state until after split index is mergedAlex Vandiver, Oct 26, 2017
  16. Ben PeartOct 26, 2017
  17. Johannes SchindelinOct 29, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.