Skip to content

Commit c11e996

Browse files
derrickstoleegitster
authored andcommitted
repo-settings: read an int for index.version
Several config options were combined into a repo_settings struct in ds/feature-macros, including a move of the "index.version" config setting in 7211b9e (repo-settings: consolidate some config settings, 2019-08-13). Unfortunately, that file looked like a lot of boilerplate and what is clearly a factor of copy-paste overload, the config setting is parsed with repo_config_ge_bool() instead of repo_config_get_int(). This means that a setting "index.version=4" would not register correctly and would revert to the default version of 3. I caught this while incorporating v2.24.0-rc0 into the VFS for Git codebase, where we really care that the index is in version 4. This was not caught by the codebase because the version checks placed in t1600-index.sh did not test the "basic" scenario enough. Here, we modify the test to include these normal settings to not be overridden by features.manyFiles or GIT_INDEX_VERSION. While the "default" version is 3, this is demoted to version 2 in do_write_index() when not necessary. Signed-off-by: Derrick Stolee <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent aaf633c commit c11e996

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

repo-settings.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void prepare_repo_settings(struct repository *r)
2222
UPDATE_DEFAULT_BOOL(r->settings.core_commit_graph, 1);
2323
UPDATE_DEFAULT_BOOL(r->settings.gc_write_commit_graph, 1);
2424

25-
if (!repo_config_get_bool(r, "index.version", &value))
25+
if (!repo_config_get_int(r, "index.version", &value))
2626
r->settings.index_version = value;
2727
if (!repo_config_get_maybe_bool(r, "core.untrackedcache", &value)) {
2828
if (value == 0)

t/t1600-index.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ test_index_version () {
8787
}
8888

8989
test_expect_success 'index version config precedence' '
90+
test_index_version 0 false 0 2 &&
91+
test_index_version 2 false 0 2 &&
92+
test_index_version 3 false 0 2 &&
93+
test_index_version 4 false 0 4 &&
9094
test_index_version 2 false 4 4 &&
9195
test_index_version 2 true 0 2 &&
9296
test_index_version 0 true 0 4 &&

0 commit comments

Comments
 (0)