fsmonitor: read from getcwd(), not the PWD environment variable
commit6f1dc21d983a495877c8054d41d9b634e234ccc4
authorAlex Vandiver <alexmv@dropbox.com>
Thu, 9 Nov 2017 19:58:09 +0000 (9 11:58 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Nov 2017 05:04:50 +0000 (10 14:04 +0900)
tree66f54dd50739f5367026e6ced8bd4ba091dd04c9
parentba1b9caca69909b3c048bda1bbfab4fefb070bff
fsmonitor: read from getcwd(), not the PWD environment variable

Though the process has chdir'd to the root of the working tree, the
PWD environment variable is only guaranteed to be updated accordingly
if a shell is involved -- which is not guaranteed to be the case.
That is, if `/usr/bin/perl` is a binary, $ENV{PWD} is unchanged from
whatever spawned `git` -- if `/usr/bin/perl` is a trivial shell
wrapper to the real `perl`, `$ENV{PWD}` will have been updated to the
root of the working copy.

Update to read from the Cwd module using the `getcwd` syscall, not the
PWD environment variable.  The Cygwin case is left unchanged, as it
necessarily _does_ go through a shell.

Signed-off-by: Alex Vandiver <alexmv@dropbox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7519/fsmonitor-watchman
templates/hooks--fsmonitor-watchman.sample