Git development
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Taylor Blau <me@ttaylorr.com>,
	 git@vger.kernel.org,
	 Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: MIDX woes, was Re: [ANNOUNCE] Git v2.54.0-rc2
Date: Thu, 16 Apr 2026 11:10:15 -0700	[thread overview]
Message-ID: <xmqqldem22uw.fsf@gitster.g> (raw)
In-Reply-To: <20260416053435.GA646718@coredump.intra.peff.net> (Jeff King's message of "Thu, 16 Apr 2026 01:34:35 -0400")

Jeff King <peff@peff.net> writes:

> On Thu, Apr 16, 2026 at 01:17:33AM -0400, Jeff King wrote:
>
>> I think removing the .midx file (and optionally regenerating with the
>> old version) would be the appropriate workaround, but I wonder how hard
>> it would be to go back to generating v1 midx files by default. I know v2
>> is a building block for more advanced features, but for those who are
>> not using those features yet it is a strict regression.
>
> I think doing so is just this one-liner:

Let's do this before Git 2.54 final, then.

----- >8 -----
From: Jeff King <peff@peff.net>
Date: Thu, 16 Apr 2026 10:56:20 -0700
Subject: [PATCH] MIDX: keep the default version to MIDX v1

As deployed versions of Git and its reimplementations may not be
ready for the format bump, let's revert the default version of MIDX
file we write back to V1, and adjust the tests so that the ones that
do test features that require V2 to explicitly ask for it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 midx-write.c                        | 2 +-
 t/t5319-multi-pack-index.sh         | 5 ++++-
 t/t5335-compact-multi-pack-index.sh | 7 +++++++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/midx-write.c b/midx-write.c
index 0ff2e45aa7..607de889f9 100644
--- a/midx-write.c
+++ b/midx-write.c
@@ -1259,7 +1259,7 @@ 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,
+		.version = MIDX_VERSION_V1,
 	 };
 	struct multi_pack_index *midx_to_free = NULL;
 	int bitmapped_packs_concat_len = 0;
diff --git a/t/t5319-multi-pack-index.sh b/t/t5319-multi-pack-index.sh
index 58e0b685b1..ed1f993a74 100755
--- a/t/t5319-multi-pack-index.sh
+++ b/t/t5319-multi-pack-index.sh
@@ -19,9 +19,12 @@ midx_read_expect () {
 	NUM_CHUNKS=$3
 	OBJECT_DIR=$4
 	EXTRA_CHUNKS="$5"
+	# This reflects the default midx version we write; it should switch
+	# to 2 if we flip the default.
+	VERSION=1
 	{
 		cat <<-EOF &&
-		header: 4d494458 2 $HASH_LEN $NUM_CHUNKS $NUM_PACKS
+		header: 4d494458 $VERSION $HASH_LEN $NUM_CHUNKS $NUM_PACKS
 		chunks: pack-names oid-fanout oid-lookup object-offsets$EXTRA_CHUNKS
 		num_objects: $NUM_OBJECTS
 		packs:
diff --git a/t/t5335-compact-multi-pack-index.sh b/t/t5335-compact-multi-pack-index.sh
index 40f3844282..4ad007169a 100755
--- a/t/t5335-compact-multi-pack-index.sh
+++ b/t/t5335-compact-multi-pack-index.sh
@@ -57,6 +57,13 @@ test_midx_layer_object_uniqueness () {
 	done <$midx_chain
 }
 
+# MIDX compaction requires the v2 format, so make it the default
+# for the rest of this script. We check below that trying
+# compaction with v1 fails using "git -c", which will override this.
+test_expect_success 'set midx version config' '
+	git config --global midx.version 2
+'
+
 test_expect_success 'MIDX compaction with lex-ordered pack names' '
 	git init midx-compact-lex-order &&
 	(
-- 
2.54.0-rc2-109-g879cd67f0d


  parent reply	other threads:[~2026-04-16 18:10 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-14 15:22 [ANNOUNCE] Git v2.54.0-rc2 Junio C Hamano
2026-04-15 20:50 ` MIDX woes, was " Johannes Schindelin
2026-04-15 21:04   ` Junio C Hamano
2026-04-16  5:17     ` Jeff King
2026-04-16  5:34       ` Jeff King
2026-04-16 13:24         ` Derrick Stolee
2026-04-16 16:09           ` Junio C Hamano
2026-04-16 20:29             ` Taylor Blau
2026-04-19 22:41               ` Derrick Stolee
2026-04-20  1:52                 ` Junio C Hamano
2026-04-16 20:26           ` Taylor Blau
2026-04-16 23:29             ` Jeff King
2026-04-16 18:10         ` Junio C Hamano [this message]
2026-04-16 18:18           ` Junio C Hamano
2026-04-16 19:49             ` Jeff King
2026-04-16 20:12               ` Junio C Hamano
2026-04-16 23:23                 ` Jeff King
2026-04-17  4:15                   ` Junio C Hamano
2026-04-16 18:45           ` [PATCH] MIDX: revert the default version to v1 Junio C Hamano
2026-04-16 19:38             ` Junio C Hamano
2026-04-16 20:58               ` Junio C Hamano
2026-04-16 21:13                 ` Taylor Blau
2026-04-16 20:06             ` Jeff King
2026-04-16 20:55               ` Junio C Hamano
2026-04-16 23:24                 ` Jeff King
2026-04-16 23:26                   ` Jeff King
2026-04-16 21:12               ` Taylor Blau
2026-04-16 23:27                 ` Jeff King
2026-04-17 15:19 ` [ANNOUNCE] Git v2.54.0-rc2 Junio C Hamano
2026-04-17 17:03   ` Elijah Newren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqldem22uw.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=me@ttaylorr.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox