diff --git a/Documentation/git-multi-pack-index.adoc b/Documentation/git-multi-pack-index.adoc index 6125683014..3a5aa22778 100644 --- a/Documentation/git-multi-pack-index.adoc +++ b/Documentation/git-multi-pack-index.adoc @@ -98,6 +98,9 @@ compact:: --[no-]bitmap:: Control whether or not a multi-pack bitmap is written. -- ++ +Note that the compact command requires writing a version-2 midx that +cannot be read by versions of Git prior to v2.54. verify:: Verify the contents of the MIDX file. diff --git a/midx-write.c b/midx-write.c index 0ff2e45aa7..a25cab75ab 100644 --- a/midx-write.c +++ b/midx-write.c @@ -1259,7 +1259,6 @@ static int write_midx_internal(struct write_midx_opts *opts) struct tempfile *incr; struct write_midx_context ctx = { .preferred_pack_idx = NO_PREFERRED_PACK, - .version = MIDX_VERSION_V2, }; struct multi_pack_index *midx_to_free = NULL; int bitmapped_packs_concat_len = 0; @@ -1275,6 +1274,9 @@ static int write_midx_internal(struct write_midx_opts *opts) ctx.repo = r; ctx.source = opts->source; + ctx.version = ((opts->flags & MIDX_WRITE_COMPACT) + ? MIDX_VERSION_V2 + : MIDX_VERSION_V1); repo_config_get_int(ctx.repo, "midx.version", &ctx.version); if (ctx.version != MIDX_VERSION_V1 && ctx.version != MIDX_VERSION_V2) die(_("unknown MIDX version: %d"), ctx.version); diff --git a/t/t5319-multi-pack-index.sh b/t/t5319-multi-pack-index.sh index 58e0b685b1..fa0d4046f7 100755 --- a/t/t5319-multi-pack-index.sh +++ b/t/t5319-multi-pack-index.sh @@ -21,7 +21,7 @@ midx_read_expect () { EXTRA_CHUNKS="$5" { cat <<-EOF && - header: 4d494458 2 $HASH_LEN $NUM_CHUNKS $NUM_PACKS + header: 4d494458 1 $HASH_LEN $NUM_CHUNKS $NUM_PACKS chunks: pack-names oid-fanout oid-lookup object-offsets$EXTRA_CHUNKS num_objects: $NUM_OBJECTS packs: