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