Re: [PATCH v2 4/8] t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Dec 10, 2019, 10:07 UTC
- Message-ID
- <20191210100732.GD6527@szeder.dev>
- In-Reply-To
- <efc16962ee2595db50bf051fc84632b8c70036b3.1575907804.git.gitgitgadget@gmail.com>
On Mon, Dec 09, 2019 at 04:10:00PM +0000, Derrick Stolee via GitGitGadget wrote:
Show 13 quoted lines
> From: Derrick Stolee <dstolee@microsoft.com> > > 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.
Show 56 quoted lines
> This is also a problem when a test script uses GIT_WORK_TREE. > > Signed-off-by: Derrick Stolee <dstolee@microsoft.com> > --- > 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 >