Subject: How is the ^{sha256} peel syntax supposed to work?

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Wed, 29 Aug 2018 11:13:25 +0200

On Fri, Aug 24 2018, Jonathan Nieder wrote:

> Hi,
>
> Ævar Arnfjörð Bjarmason wrote:
>
>>> git --output-format=sha1 log abac87a^{sha1}..f787cac^{sha256}
>>
>> How is this going to interact with other peel syntax? I.e. now we have
>> <object>^{commit} <sha>^{tag} etc. It seems to me we'll need not ^{sha1}
>> but ^{sha1:<current_type>}, e.g. ^{sha1:commit} or ^{sha1:tag}, with
>> current ^{} being a synonym for ^{sha1:}.
>>
>> Or is this expected to be chained, as e.g. <object>^{tag}^{sha256} ?
>
> Great question.  The latter (well, <hexdigits>^{sha256}^{tag}, not the
> other way around).

Since nobody's chimed in with an answer, and I suspect many have an
adversion to that big thread I thought I'd spin out just this small
question into its own thread.

brian m. carlson did some prep work for this in his just-submitted
https://public-inbox.org/git/[email-masked]/

I was going to work on some of the peel code soon (digging up the type
disambiguation patches I still need to re-submit), so could do this
while I'm at it, i.e. implement ^{sha1}.

But as noted above it's not clear how it should work. Jonathan's
chaining suggestion (<hexdigits>^{sha256}^{tag} not
<hexdigits>^{tag}^{sha256}) makes more sense than mine, but is that what
we're going for, or ^{sha256:tag}?