From: Junio C Hamano <gitster@pobox.com>
To: "brian m. carlson" <sandals@crustytoothpaste.net>
Cc: <git@vger.kernel.org>
Subject: Re: [RFC PATCH 4/6] hex: label usages of hex parsing for object IDs
Date: Tue, 25 Aug 2026 09:11:42 -0700 [thread overview]
Message-ID: <xmqqh5kinps1.fsf@gitster.g> (raw)
In-Reply-To: <20260729233215.398654-5-sandals@crustytoothpaste.net> (brian m. carlson's message of "Wed, 29 Jul 2026 23:32:13 +0000")
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
> In preparation for a future change, label the hex parsing we're doing
> for object IDs by defining a constant called HEX_KIND_OID. This is
> currently the same as HEX_KIND_MIXED, so there is no functional change
> here.
>
> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
> diagnose.c | 2 +-
> hex-ll.h | 2 ++
> hex.c | 2 +-
> http-push.c | 4 ++--
> notes.c | 2 +-
> object-file.c | 2 +-
> 6 files changed, 8 insertions(+), 6 deletions(-)
This is a hard-to-review patch in the sense that what we see in the
patch may be perfectly good, but we cannot see what is left out,
either by mistake or by misdesign. So I checked out the state with
this patch (and no later ones) applied, and eyeballed the output of
$ git grep -n -e HEX_KIND_MIXED
At this step, a few explicit uses of HEX_KIND_MIXED remain that I
think should have been converted to HEX_KIND_OID.
* builtin/index-pack.c:repack_local_links() spawns a pack-objects
process and reads its output. As we are reading from a known
version of Git (i.e., pack-objects that came with the index-pack
that runs this code), we do not need to be lenient and can use
HEX_KIND_OID here.
* notes.c:load_subtree() has two calls to hex_to_bytes() to read
paths in a notes tree, and this patch updates only one to use
HEX_KIND_OID, leaving the other one HEX_KIND_MIXED, which we
probably should change at the same time (if there is a valid
reason, it deserves an in-code comment to explain it).
The remaining uses of HEX_KIND_MIXED look mostly OK.
- color.c uses MIXED to decode things like #AAFF00, which will be
correct forever.
- mailinfo.c uses MIXED to decode Q encoding, and we have no power
or business to forbid uppercase hex there.
- pkt-line.c:packet_length() uses MIXED to decode the packet length
expressed in the four hex digits at the beginning. We could
forbid uppercase hex there (our length bytes have always been
lowercase) if we wanted to, but HEX_KIND_OID is not the enum to
use to do so.
- ref-filter.c:append_literal() is similar to the next one.
- strbuf.c:strbuf_expand_literal() uses MIXED to decode %0A into line
feed, etc. We could forbid uppercase hex there if we wanted to,
but HEX_KIND_OID is not the enum to use to do so.
- url.c:url_decode_internal() uses MIXED to decode %2F into '/',
etc., and we have no power or business to forbid uppercase hex
there.
- urlmatch.c:append_normalized_escapes() uses MIXED to decode %2F
into '/' before escaping it back with %02X.
next prev parent reply other threads:[~2026-08-25 16:11 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 23:32 [RFC PATCH 0/6] Git 3.0: restrict hex object IDs to lowercase only brian m. carlson
2026-07-29 23:32 ` [RFC PATCH 1/6] hex: add functionality for lowercase-only hex brian m. carlson
2026-07-31 7:38 ` Junio C Hamano
2026-08-25 15:39 ` Junio C Hamano
2026-08-25 21:44 ` brian m. carlson
2026-07-29 23:32 ` [RFC PATCH 2/6] hex: allow specifying hex type with hex2chr brian m. carlson
2026-07-29 23:32 ` [RFC PATCH 3/6] hex: make hex_to_bytes accept kind of hex to use brian m. carlson
2026-07-31 7:38 ` Junio C Hamano
2026-08-01 14:35 ` Jeff King
2026-07-29 23:32 ` [RFC PATCH 4/6] hex: label usages of hex parsing for object IDs brian m. carlson
2026-07-31 3:24 ` Junio C Hamano
2026-08-25 16:11 ` Junio C Hamano [this message]
2026-07-29 23:32 ` [RFC PATCH 5/6] object-name: use hexval brian m. carlson
2026-08-25 16:19 ` Junio C Hamano
2026-08-25 19:44 ` Elijah Newren
2026-08-25 21:41 ` brian m. carlson
2026-07-29 23:32 ` [RFC PATCH 6/6] hex: allow only lowercase object IDs in breaking changes mode brian m. carlson
2026-07-31 7:48 ` Junio C Hamano
2026-07-31 12:33 ` Junio C Hamano
2026-08-02 22:09 ` brian m. carlson
2026-08-04 19:32 ` Junio C Hamano
2026-08-04 21:46 ` brian m. carlson
2026-08-05 3:09 ` Michael Montalbo
2026-08-25 9:04 ` Phillip Wood
2026-08-25 21:36 ` brian m. carlson
2026-08-25 16:36 ` Junio C Hamano
2026-08-25 19:44 ` Elijah Newren
2026-07-30 8:21 ` [RFC PATCH 0/6] Git 3.0: restrict hex object IDs to lowercase only Junio C Hamano
2026-07-30 21:18 ` brian m. carlson
2026-08-01 14:45 ` Jeff King
2026-08-01 18:22 ` Junio C Hamano
2026-08-02 21:55 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqh5kinps1.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=sandals@crustytoothpaste.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.