On Mon, Dec 09, 2019 at 04:10:00PM +0000, Derrick Stolee via GitGitGadget wrote: > From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > > The fsmonitor feature allows an external tool such as watchman to > monitor the working directory. The direct test > t7619-status-fsmonitor.sh provides some coverage, but it would be > better to run the entire test suite with watchman enabled. This > would provide more confidence that the feature is working as > intended. > > Worktrees use a ".git" _file_ instead of a folder to point to > the base repo's .git directory and the proper worktree HEAD. The > fsmonitor hook tries to create a JSON file inside the ".git" folder > which violates the expectation here. Yeah, there are a couple hardcoded paths in there, e.g.: open ($fh, ">", ".git/watchman-response.json"); and, worse, not only in the test helper hook in 't/t7519/fsmonitor-watchman' but in the sample hook template 'templates/hooks--fsmonitor-watchman.sample' as well. > It would be better to properly > find a safe folder for storing this JSON file. git rev-parse --git-path '' gives us the right directory prefix to use and we could then append the various filenames that must be accessed in there. > This is also a problem when a test script uses GIT_WORK_TREE. > > Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > --- > t/t1510-repo-setup.sh | 1 + > t/t2400-worktree-add.sh | 2 ++ > t/t3030-merge-recursive.sh | 2 ++ > 3 files changed, 5 insertions(+) > > diff --git a/t/t1510-repo-setup.sh b/t/t1510-repo-setup.sh > index 9974457f56..28dce0c26f 100755 > --- a/t/t1510-repo-setup.sh > +++ b/t/t1510-repo-setup.sh > @@ -775,6 +775,7 @@ test_expect_success '#29: setup' ' > setup_repo 29 non-existent gitfile true && > mkdir -p 29/sub/sub 29/wt/sub && > ( > + GIT_TEST_FSMONITOR="" && > cd 29 && > GIT_WORK_TREE="$here/29" && > export GIT_WORK_TREE && > diff --git a/t/t2400-worktree-add.sh b/t/t2400-worktree-add.sh > index e819ba741e..d4d3cbae0f 100755 > --- a/t/t2400-worktree-add.sh > +++ b/t/t2400-worktree-add.sh > @@ -1,5 +1,7 @@ > #!/bin/sh > > +GIT_TEST_FSMONITOR="" > + > test_description='test git worktree add' > > . ./test-lib.sh > diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh > index ff641b348a..62f645d639 100755 > --- a/t/t3030-merge-recursive.sh > +++ b/t/t3030-merge-recursive.sh > @@ -520,6 +520,7 @@ test_expect_success 'reset and bind merge' ' > > test_expect_success 'merge-recursive w/ empty work tree - ours has rename' ' > ( > + GIT_TEST_FSMONITOR="" && > GIT_WORK_TREE="$PWD/ours-has-rename-work" && > export GIT_WORK_TREE && > GIT_INDEX_FILE="$PWD/ours-has-rename-index" && > @@ -545,6 +546,7 @@ test_expect_success 'merge-recursive w/ empty work tree - ours has rename' ' > > test_expect_success 'merge-recursive w/ empty work tree - theirs has rename' ' > ( > + GIT_TEST_FSMONITOR="" && > GIT_WORK_TREE="$PWD/theirs-has-rename-work" && > export GIT_WORK_TREE && > GIT_INDEX_FILE="$PWD/theirs-has-rename-index" && > -- > gitgitgadget >