From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> The File System Monitor (FS Monitor) tests in t7519 demonstrate some important interactions with the index and the response from the FS Monitor hook. Later changes will integrate the FS Monitor extension in the index with the existence of sparse directory entries in a sparse index. To do so, we need to include directories outside of the sparse checkout definition. Add a new directory, dir1a, between dir1 and dir2 in the test repo used by this script. By inserting it in the middle, we are more likely to trigger incorrect behavior when the fsmonitor_dirty bitmap is involved with sparse directories changing the position of cache entries. I could have modified the test to create two repos, one sparse and one not, but that causes confusion in the expected output. Further, it makes the test take twice as long. With this approach, we can validate that FS Monitor works with the sparse index feature using the GIT_TEST_SPARSE_INDEX=1 environment variable. The test currently fails with that environment variable because FS Monitor is disabled when a sparse index exists. The following changes will update this behavior. Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> --- t/t7519-status-fsmonitor.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/t/t7519-status-fsmonitor.sh b/t/t7519-status-fsmonitor.sh index 45d025f96010..23879d967297 100755 --- a/t/t7519-status-fsmonitor.sh +++ b/t/t7519-status-fsmonitor.sh @@ -62,11 +62,16 @@ test_expect_success 'setup' ' mkdir dir1 && : >dir1/tracked && : >dir1/modified && + mkdir dir1a && + : >dir1a/a && + : >dir1a/b && mkdir dir2 && : >dir2/tracked && : >dir2/modified && git -c core.fsmonitor= add . && git -c core.fsmonitor= commit -m initial && + git sparse-checkout init --cone --no-sparse-index && + git sparse-checkout set dir1 dir2 && git config core.fsmonitor .git/hooks/fsmonitor-test && cat >.gitignore <<-\EOF .gitignore @@ -99,6 +104,8 @@ test_expect_success 'update-index --no-fsmonitor" removes the fsmonitor extensio cat >expect <<EOF && h dir1/modified H dir1/tracked +S dir1a/a +S dir1a/b h dir2/modified H dir2/tracked h modified @@ -121,6 +128,8 @@ test_expect_success 'update-index --fsmonitor-valid" sets the fsmonitor valid bi cat >expect <<EOF && H dir1/modified H dir1/tracked +S dir1a/a +S dir1a/b H dir2/modified H dir2/tracked H modified @@ -139,6 +148,8 @@ test_expect_success 'update-index --no-fsmonitor-valid" clears the fsmonitor val cat >expect <<EOF && H dir1/modified H dir1/tracked +S dir1a/a +S dir1a/b H dir2/modified H dir2/tracked H modified @@ -158,6 +169,8 @@ cat >expect <<EOF && H dir1/modified h dir1/new H dir1/tracked +S dir1a/a +S dir1a/b H dir2/modified h dir2/new H dir2/tracked @@ -182,6 +195,8 @@ cat >expect <<EOF && H dir1/modified h dir1/new h dir1/tracked +S dir1a/a +S dir1a/b H dir2/modified h dir2/new h dir2/tracked @@ -201,6 +216,8 @@ test_expect_success 'all unmodified files get marked valid' ' cat >expect <<EOF && H dir1/modified h dir1/tracked +S dir1a/a +S dir1a/b h dir2/modified h dir2/tracked h modified -- gitgitgadget