Subject: [PATCH v3 0/1] fsmonitor: don't fill bitmap with entries to be removed

From: "William Baker via GitGitGadget" <[email-masked]>
Date: Fri, 11 Oct 2019 13:11:22 -0700 (PDT)

This is the third iteration of changes to fix the segfault that I
encountered while testing fsmonitor. This iteration includes the following
updates for feedback I received on v2:

 * Update the new test case to use its own dedicated test repository

This latest v3 series has been reviewed by Dscho.

Thanks, William

William Baker (1):
  fsmonitor: don't fill bitmap with entries to be removed

 fsmonitor.c                 | 29 ++++++++++++++++++++++++-----
 t/t7519-status-fsmonitor.sh | 17 +++++++++++++++++
 t/t7519/fsmonitor-env       | 24 ++++++++++++++++++++++++
 3 files changed, 65 insertions(+), 5 deletions(-)
 create mode 100755 t/t7519/fsmonitor-env

base-commit: 5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-372%2Fwilbaker%2Ffix_git_fsmonitor_crash-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-372/wilbaker/fix_git_fsmonitor_crash-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/372

Range-diff vs v2:

 1:  08741d986c ! 1:  840972e08b fsmonitor: don't fill bitmap with entries to be removed
     @@ -109,17 +109,21 @@
       	test_cmp expect actual
       '
       
     -+# This test covers staging/unstaging files that appear at the end of the index.
     -+# Test files with names beginning with 'z' are used under the assumption that
     -+# earlier tests do not add/leave index entries that sort below them. 
     ++# Test staging/unstaging files that appear at the end of the index.  Test
     ++# file names begin with 'z' so that they are sorted to the end of the index. 
      +test_expect_success 'status succeeds after staging/unstaging ' '
     -+	test_commit initial &&
     -+	removed=$(test_seq 1 100 | sed "s/^/z/") &&
     -+	touch $removed &&
     -+	git add $removed &&
     -+	test_config core.fsmonitor "$TEST_DIRECTORY/t7519/fsmonitor-env" &&
     -+	FSMONITOR_LIST="$removed" git restore -S $removed &&
     -+	FSMONITOR_LIST="$removed" git status
     ++	test_create_repo fsmonitor-stage-unstage &&
     ++	(
     ++		cd fsmonitor-stage-unstage &&
     ++		test_commit initial &&
     ++		git update-index --fsmonitor &&
     ++		removed=$(test_seq 1 100 | sed "s/^/z/") &&
     ++		touch $removed &&
     ++		git add $removed &&
     ++		git config core.fsmonitor "$TEST_DIRECTORY/t7519/fsmonitor-env" &&
     ++		FSMONITOR_LIST="$removed" git restore -S $removed &&
     ++		FSMONITOR_LIST="$removed" git status
     ++	)
      +'
      +
       test_done

-- 
gitgitgadget