From: Adam Majer <adamm@zombino.com>
To: "brian m. carlson" <sandals@crustytoothpaste.net>
Cc: git@vger.kernel.org, "Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: discussion: sha1/sha256 repositories and convert_commit_object
Date: Sat, 24 Oct 2026 14:31:22 +0300 [thread overview]
Message-ID: <70D18A25-A2AB-4237-8C63-063CEE8BBBC9@zombino.com> (raw)
In-Reply-To: <atk63xoG773PzGq7@fruit.crustytoothpaste.net>
On October 22, 2026 1:21:20 a.m. GMT+03:00, "brian m. carlson" <sandals@crustytoothpaste.net> wrote:
>On 2026-10-21 at 17:37:13, Adam Majer wrote
>I had noticed that the mergetags were not in Linus's repository, but I
>hadn't tried other repositories on kernel.org.
There is about a dozen or so mertags that I cannot find their objects. They have references to other repos, but trying those, they remained unresolved. One mergetag had some 3rd party url, which wasn't working, but http:// access allowed me to resolve it. One from a dozen missing resolved.
>> Would it be possible to have a little different approach? For example,
>> mergetag headers and other unknown headers, maybe we can consider these as
>> just text and copy verbatim in convert_commit_object? I understand this
>> would result in different commit ids, depending if coming originally from
>> sha256 or sha1 repo, but since git is not really preserving references to
>> these objects anyway, this may call for a little flexibility.
>
>I don't think I converted mergetag entries in my original series. The
>problem is that if we don't convert them, then we also can't validate
>them because we don't know what data they point to. We don't make
>assumptions based on the size of the hash because in the future we might
>also have SHA3-256 or BLAKE2b-256.
I'm not sure that is quite correct. Any supported hash function should be unique enough such that we can just try all of them. So, a mergetag or proprietary headers, if we just treat them as text in conversion function, they can be retrieved later using the original function. Hash function doesn't matter for their existence or validity. I'm assuming here that the original repo containing them is not replaced in the meantime.
Basically, I'm assuming that a repo url keeps their original hash function.
The most important part here is to be consistent. These shouldn't be converted when available and skipped otherwise, or history becomes nondeterministic and depends on ingenuity of converting person to find these objects.
>That means that the original point of the mergetags, to preserve the
>signature and contents of the original tag, would be useless. That
>doesn't mean we couldn't skip converting them, but it does mean that if
>we do so, we should probably just stop writing those headers because
>they're no longer fit for purpose and we should consider them a failed
>implementation.
My problem is these mergetags have url where they were published. But they are quite missing on the git. kernel.org in these repos.
We can still convert the objects, but references would go via loose object table.
As for unavailable submodules, like in NodeJS repo from over a decade ago, I think they'll be unconvertible. It's not really possible to skip these without making a mess of history. Or perhaps you have an idea here?
- Adam
prev parent reply other threads:[~2026-10-24 11:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 17:37 discussion: sha1/sha256 repositories and convert_commit_object Adam Majer
2026-10-21 22:21 ` brian m. carlson
2026-10-24 11:31 ` Adam Majer [this message]
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=70D18A25-A2AB-4237-8C63-063CEE8BBBC9@zombino.com \
--to=adamm@zombino.com \
--cc=ebiederm@xmission.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox