From: Johannes Schindelin Date: Fri, 20 Oct 2017 12:58:40 GMT Subject: Re: [PATCH 1/4] fsmonitor: Watch, and ask about, the top of the repo, not the CWD Message-ID: In-Reply-To: <4f8e3dab26cf50cc6aa055605784680f5c33fcfa.1508461850.git.alexmv@dropbox.com> Hi Alex, On Thu, 19 Oct 2017, Alex Vandiver wrote: > Signed-off-by: Alex Vandiver > --- > t/t7519/fsmonitor-watchman | 3 ++- > templates/hooks--fsmonitor-watchman.sample | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/t/t7519/fsmonitor-watchman b/t/t7519/fsmonitor-watchman > index a3e30bf54..377edc7be 100755 > --- a/t/t7519/fsmonitor-watchman > +++ b/t/t7519/fsmonitor-watchman > @@ -41,7 +41,8 @@ if ($system =~ m/^MSYS_NT/ || $system =~ m/^MINGW/) { > $git_work_tree =~ s/[\r\n]+//g; > $git_work_tree =~ s,\\,/,g; > } else { > - $git_work_tree = $ENV{'PWD'}; > + $git_work_tree = `git rev-parse --show-toplevel`; > + chomp $git_work_tree; This is super expensive, as it means a full-blown new process instead of just a simple environment variable expansion. The idea behind using `PWD` instead was that Git will already have done all of the work of figuring out the top-level directory and switched to there before calling the fsmonitor hook. Did you see any case where the script was *not* called from the top-level directory? Ciao, Johannes