From: Junio C Hamano <gitster@pobox.com>
To: "brian m. carlson" <sandals@crustytoothpaste.net>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
Git List <git@vger.kernel.org>,
Jonathan Nieder <jrnieder@gmail.com>,
Stefan Beller <sbeller@google.com>,
Brandon Williams <bmwill@google.com>
Subject: Re: [PATCH v2 3/4] Integrate hash algorithm support with repo setup
Date: Mon, 30 Oct 2017 11:13:41 +0900 [thread overview]
Message-ID: <xmqq7evd8jsa.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20171029193327.uqkj6w3ypfwqwm7b@genre.crustytoothpaste.net> (brian m. carlson's message of "Sun, 29 Oct 2017 19:33:28 +0000")
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
> On Sun, Oct 29, 2017 at 03:02:20PM -0400, Eric Sunshine wrote:
>> On Sun, Oct 29, 2017 at 1:57 PM, brian m. carlson
>> <sandals@crustytoothpaste.net> wrote:
>> > I can do CURRENT_HASH_ALGO or CURRENT_HASH instead if you think that's
>> > an improvement. I originally omitted the "algo" portion to keep it
>> > short.
>>
>> I don't have strong feelings about it aside from worrying about a
>> "current_hash" name clash or a reader misunderstanding what it
>> represents.
>>
>> Does "current" need to be in the name? What about HASH_ALGO or REPO_HASH_ALGO?
>>
>> > Alternatively, we could have a current_hash() (or current_hash_algo())
>> > inline function if people like that better.
>>
>> hash_algo() or repo_hash_algo()?
>
> Those are also fine, and shorter to boot. I'll wait to see if anyone
> has strong opinions on the direction we should go before making a
> change.
Is the plan to allow running with multiple hash algorithms in
parallel? I thought what we want to see in the future codebase was
to have the default hash algorithm used for everything except for a
select few codepaths, and assumed that the way we achieve it is to
- allow very low level helper functions (e.g. read_sha1_file(),
write_sha1_file_prepare(), etc.) to take a pointer to the hash
algorithm structure;
- have higher level helper functions to call these low level
helpers with a fixed singleton instance of hash algorithm
structure that represents that default one (SHA2-something?); and
- a few selected codepaths (e.g. index-pack that reads SHA-1 stream
and converts it into NewHash pack/index while building the object
name mapping) use an additional singleton instance of hash
algorithm structure that represents the SHA-1 hash, and the way
they use it is *NOT* by replacing "the current" one with SHA-1,
but by explicitly passing the instance to the low level helpers
as parameter.
So, "current" does indeed sound quite wrong, as it makes it sound as
if you can swap it anytime and ask "which one is in effect now?".
If we do not want to call the default instance "SHA-2" because we
want to prepare for migrating again by not having the name of a
concrete hash algorithm sprinkled in the codebase all over like we
currently do, why not call the instance "the_hash_algo"?
next prev parent reply other threads:[~2017-10-30 2:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-28 18:12 [PATCH v2 0/4] Hash Abstraction brian m. carlson
2017-10-28 18:12 ` [PATCH v2 1/4] setup: expose enumerated repo info brian m. carlson
2017-10-30 16:08 ` Stefan Beller
2017-10-28 18:12 ` [PATCH v2 2/4] Add structure representing hash algorithm brian m. carlson
2017-10-29 1:36 ` Eric Sunshine
2017-10-29 17:00 ` brian m. carlson
2017-10-30 16:14 ` Stefan Beller
2017-10-30 23:36 ` Brandon Williams
2017-11-01 1:35 ` brian m. carlson
2017-10-28 18:12 ` [PATCH v2 3/4] Integrate hash algorithm support with repo setup brian m. carlson
2017-10-29 1:44 ` Eric Sunshine
2017-10-29 17:57 ` brian m. carlson
2017-10-29 19:02 ` Eric Sunshine
2017-10-29 19:33 ` brian m. carlson
2017-10-30 2:13 ` Junio C Hamano [this message]
2017-10-30 2:54 ` brian m. carlson
2017-10-30 16:27 ` Stefan Beller
2017-10-28 18:12 ` [PATCH v2 4/4] Switch empty tree and blob lookups to use hash abstraction brian m. carlson
2017-10-30 16:45 ` [PATCH v2 0/4] Hash Abstraction Stefan Beller
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=xmqq7evd8jsa.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=sandals@crustytoothpaste.net \
--cc=sbeller@google.com \
--cc=sunshine@sunshineco.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.
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.