[PATCH v2 0/6] Fix GIT_TEST_SPLIT_INDEX
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Aug 26, 2021, 20:59 UTC
- Message-ID
- <20210826210004.672860-1-szeder.dev@gmail.com>
- In-Reply-To
- <20210817174938.3009923-1-szeder.dev@gmail.com>
To recap from v1's cover letter:
Running tests with GIT_TEST_SPLIT_INDEX=1 is supposed to turn on the split index feature and trigger index splitting (mostly) randomly. Alas, this has been broken for ~2.5 years, and it hasn't triggered any index splitting since then.
The last patch in this series makes GIT_TEST_SPLIT_INDEX=1 work again, although it slightly changes its behavior; see its log message for all the details.
Patches 3 and 4 fix old tests that started to fail because of this slight behavior change. Bsides the final fix, patch 4 is the most interesting in this series.
Patch 5 fixes recent sparse index tests that were introduced while GIT_TEST_SPLIT_INDEX was broken.
The first two patches are just minor while-at-it test cleanups.
Changes since v1, both in patch 5:
- Removed a remark about making split and sparse index compatible.
- Stolle suggested to rebase this patch series on top of topic
'ds/sparse-index-ignored-files' to avoid merge conflicts in a
sparse index test. Well, I didn't do that, but instead I rebased
this series on top of the merge of master and 86d6ca5886 (t7519:
rewrite sparse index test, 2021-08-10), and the latter commit:
- is the one responsible for said merge conflicts, and
- is at the bottom of 'ds/sparse-index-ignored-files', and could
be considered more as a followup fix for topic
'ds/status-with-sparse-index' (already in v2.33.0) than an
integral part of 'ds/sparse-index-ignored-files'.
The rest of 'ds/sparse-index-ignored-files' doesn't have any
conflicts with this patch series that auto-merge couldn't resolve.SZEDER Gábor (6): t1600-index: remove unnecessary redirection t1600-index: don't run git commands upstream of a pipe t1600-index: disable GIT_TEST_SPLIT_INDEX read-cache: look for shared index files next to the index, too tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests read-cache: fix GIT_TEST_SPLIT_INDEX
read-cache.c | 37 +++++++++++----- t/t1091-sparse-checkout-builtin.sh | 25 ++++++----- t/t1600-index.sh | 13 ++++-- t/t1700-split-index.sh | 34 +++++++++++++++ t/t7519-status-fsmonitor.sh | 68 ++++++++++++++++-------------- 5 files changed, 121 insertions(+), 56 deletions(-)
Range-diff against v1:
1: 7e1d38d215 = 1: ab555030cb t1600-index: remove unnecessary redirection
2: d86c91d26e = 2: 38d350b02d t1600-index: don't run git commands upstream of a pipe
3: 792b6739e5 = 3: 57b5386aee t1600-index: disable GIT_TEST_SPLIT_INDEX
4: b12467bab7 = 4: 58c444bcd0 read-cache: look for shared index files next to the index, too
5: 51e13df905 ! 5: 24b8b7738c tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
@@ Commit message
by later sanity checks finding that the index is not in fact a sparse
index. This indicates that 'git sparse-checkout init --sparse-index'
lacks some error checking and its tests lack coverage related to split
- index, but fixing those issues (let alone making sparse index
- comparible with split index) is beyond the scope of this patch series.
+ index, but fixing those issues is beyond the scope of this patch
+ series.
[1] https://public-inbox.org/git/48e9c3d6-407a-1843-2d91-22112410e3f8@gmail.com/
@@ t/t7519-status-fsmonitor.sh: check_sparse_index_behavior () {
}
test_expect_success 'status succeeds with sparse index' 'I took the liberty to cut the part of the range-diff showing the changes of changes to this test, because 86d6ca5886 totally rewrites this test, while this patch changes the test's indentation, resulting in an unusable range-diff. Instead, to show the only relevant change in this patch here is the first hunk touching this test with --ignore-all-space from v1:
@@ -402,6 +402,10 @@ check_sparse_index_behavior () {
}
test_expect_success 'status succeeds with sparse index' '
+ (
+ sane_unset GIT_TEST_SPLIT_INDEX &&
+ git update-index --no-split-index &&
+
git reset --hard &&
test_config core.fsmonitor "$TEST_DIRECTORY/t7519/fsmonitor-all" &&And from v2:
@@ -399,6 +399,9 @@ check_sparse_index_behavior () {
}
test_expect_success 'status succeeds with sparse index' '
+ (
+ sane_unset GIT_TEST_SPLIT_INDEX &&
+
git clone . full &&
git clone . sparse &&
git -C sparse sparse-checkout init --cone --sparse-index &&6: a5c790e622 = 6: a43a12b0ce read-cache: fix GIT_TEST_SPLIT_INDEX
-- 2.33.0.358.g803110d36e