From: Derrick Stolee <derrickstolee@xxxxxxxxxx> When set, this will create a default value for the packed-refs file version on writes. When set to "2", it will automatically add the "packed-v2" value to extensions.refFormat. Not all tests pass with GIT_TEST_PACKED_REFS_VERSION=2 because they care specifically about the content of the packed-refs file. These tests will be updated in following changes. To start, though, disable the GIT_TEST_PACKED_REFS_VERSION environment variable in t3212-ref-formats.sh, since that script already tests both versions, including upgrade scenarios. Signed-off-by: Derrick Stolee <derrickstolee@xxxxxxxxxx> --- refs/packed-backend.c | 3 ++- setup.c | 5 ++++- t/t3212-ref-formats.sh | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/refs/packed-backend.c b/refs/packed-backend.c index ae904de9014..e84f669c42e 100644 --- a/refs/packed-backend.c +++ b/refs/packed-backend.c @@ -807,7 +807,8 @@ static int write_with_updates(struct packed_ref_store *refs, } strbuf_release(&sb); - if (git_config_get_int("refs.packedrefsversion", &version)) { + if (!(version = git_env_ulong("GIT_TEST_PACKED_REFS_VERSION", 0)) && + git_config_get_int("refs.packedrefsversion", &version)) { /* * Set the default depending on the current extension * list. Default to version 1 if available, but allow a diff --git a/setup.c b/setup.c index 72bfa289ade..a4525732fe9 100644 --- a/setup.c +++ b/setup.c @@ -732,8 +732,11 @@ int read_repository_format(struct repository_format *format, const char *path) clear_repository_format(format); /* Set default ref_format if no extensions.refFormat exists. */ - if (!format->ref_format_count) + if (!format->ref_format_count) { format->ref_format = REF_FORMAT_FILES | REF_FORMAT_PACKED; + if (git_env_ulong("GIT_TEST_PACKED_REFS_VERSION", 0) == 2) + format->ref_format |= REF_FORMAT_PACKED_V2; + } return format->version; } diff --git a/t/t3212-ref-formats.sh b/t/t3212-ref-formats.sh index 571ba518ef1..5583f16db41 100755 --- a/t/t3212-ref-formats.sh +++ b/t/t3212-ref-formats.sh @@ -2,6 +2,9 @@ test_description='test across ref formats' +GIT_TEST_PACKED_REFS_VERSION=0 +export GIT_TEST_PACKED_REFS_VERSION + . ./test-lib.sh test_expect_success 'extensions.refFormat requires core.repositoryFormatVersion=1' ' -- gitgitgadget