From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 32/39] setup: add support for reading extensions.objectformat
Date: Thu, 23 Jul 2020 02:39:00 +0000 [thread overview]
Message-ID: <20200723023900.GA1758454@crustytoothpaste.net> (raw)
In-Reply-To: <xmqqblk73s1n.fsf@gitster.c.googlers.com>
On 2020-07-23 at 02:04:52, Junio C Hamano wrote:
> "brian m. carlson" <sandals@crustytoothpaste.net> writes:
>
> > @@ -613,6 +622,11 @@ int verify_repository_format(const struct repository_format *format,
> > return -1;
> > }
> >
> > + if (format->version <= 0 && format->hash_algo != GIT_HASH_SHA1) {
> > + strbuf_addstr(err, _("extensions.objectFormat is not valid in repo v0"));
> > + return -1;
> > + }
> > +
> > return 0;
> > }
> >
>
> By declaring that the repository is invalid if its version is less
> than 1 and objectFormat extension defined, we prevent unwanted
> upgrading from happening by mistake.
Yes, and more specifically:
* If the repository is v0 and has an objectFormat set, we fail in newer
versions of Git (i.e., after this series). Older versions which do
not support the extension will see breakage (because unknown
extensions are not fatal in v0), but we hope by adding this check that
nobody will ever configure a repo this way, since it will be totally
nonfunctional in this state, regardless of version.
* If the repository is v1 and has an objectFormat set, we work with
newer Git and everything is great. Older Git versions fail hard here,
and the user gets a moderately helpful error message.
v2 of the series just ignored the setting in v0, which would make it
equally broken in older and newer versions, but would provide a less
useful error message (probably about a corrupt index).
--
brian m. carlson: Houston, Texas, US
next prev parent reply other threads:[~2020-07-23 2:39 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-23 1:09 [PATCH v3 00/39] SHA-256, part 3/3 brian m. carlson
2020-07-23 1:09 ` [PATCH v3 01/39] t: make test-bloom initialize repository brian m. carlson
2020-07-23 1:09 ` [PATCH v3 02/39] t1001: use $ZERO_OID brian m. carlson
2020-07-23 1:09 ` [PATCH v3 03/39] t3305: make hash agnostic brian m. carlson
2020-07-23 1:09 ` [PATCH v3 04/39] t3404: prepare 'short SHA-1 collision' tests for SHA-256 brian m. carlson
2020-07-23 1:09 ` [PATCH v3 05/39] t6100: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 06/39] t6101: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 07/39] t6301: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 08/39] t6500: specify test values for SHA-256 brian m. carlson
2020-07-23 1:09 ` [PATCH v3 09/39] t6501: avoid hard-coded objects brian m. carlson
2020-07-23 1:09 ` [PATCH v3 10/39] t7003: compute appropriate length constant brian m. carlson
2020-07-23 1:09 ` [PATCH v3 11/39] t7063: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 12/39] t7201: abstract away SHA-1-specific constants brian m. carlson
2020-07-23 1:09 ` [PATCH v3 13/39] t7102: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 14/39] t7400: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 15/39] t7405: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 16/39] t7506: avoid checking for SHA-1-specific constants brian m. carlson
2020-07-23 1:09 ` [PATCH v3 17/39] t7508: use $ZERO_OID instead of hard-coded constant brian m. carlson
2020-07-23 1:09 ` [PATCH v3 18/39] t8002: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 19/39] t8003: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 20/39] t8011: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 21/39] t9300: abstract away SHA-1-specific constants brian m. carlson
2020-07-23 1:09 ` [PATCH v3 22/39] t9300: use $ZERO_OID instead of hard-coded object ID brian m. carlson
2020-07-23 1:09 ` [PATCH v3 23/39] t9301: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 24/39] t9350: " brian m. carlson
2020-07-23 1:09 ` [PATCH v3 25/39] t9500: ensure that algorithm info is preserved in config brian m. carlson
2020-07-23 1:09 ` [PATCH v3 26/39] t9700: make hash size independent brian m. carlson
2020-07-23 1:09 ` [PATCH v3 27/39] t5308: make test work with SHA-256 brian m. carlson
2020-07-23 1:09 ` [PATCH v3 28/39] t0410: mark test with SHA1 prerequisite brian m. carlson
2020-07-23 1:09 ` [PATCH v3 29/39] http-fetch: set up git directory before parsing pack hashes brian m. carlson
2020-07-23 1:09 ` [PATCH v3 30/39] builtin/verify-pack: implement an --object-format option brian m. carlson
2020-07-23 4:54 ` Eric Sunshine
2020-07-23 1:09 ` [PATCH v3 31/39] bundle: add new version for use with SHA-256 brian m. carlson
2020-07-23 5:31 ` Eric Sunshine
2020-07-23 5:40 ` Eric Sunshine
2020-07-24 1:11 ` brian m. carlson
2020-07-23 1:09 ` [PATCH v3 32/39] setup: add support for reading extensions.objectformat brian m. carlson
2020-07-23 2:04 ` Junio C Hamano
2020-07-23 2:39 ` brian m. carlson [this message]
2020-07-23 4:15 ` Junio C Hamano
2020-07-25 1:59 ` brian m. carlson
2020-07-23 1:09 ` [PATCH v3 33/39] Enable SHA-256 support by default brian m. carlson
2020-07-23 1:09 ` [PATCH v3 34/39] t: add test_oid option to select hash algorithm brian m. carlson
2020-07-23 4:51 ` Eric Sunshine
2020-07-23 23:38 ` brian m. carlson
2020-07-23 23:46 ` Eric Sunshine
2020-07-24 0:05 ` Junio C Hamano
2020-07-23 1:09 ` [PATCH v3 35/39] t: allow testing different hash algorithms via environment brian m. carlson
2020-07-23 1:09 ` [PATCH v3 36/39] t: make SHA1 prerequisite depend on default hash brian m. carlson
2020-07-23 1:09 ` [PATCH v3 37/39] ci: run tests with SHA-256 brian m. carlson
2020-07-23 1:09 ` [PATCH v3 38/39] docs: add documentation for extensions.objectFormat brian m. carlson
2020-07-23 1:09 ` [PATCH v3 39/39] t: remove test_oid_init in tests brian m. carlson
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200723023900.GA1758454@crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).