Thread (1 message) 1 message, 1 author, 2021-02-28

Re: [PATCH 2/2] pretty: add merge and exclude options to %(describe)

From: René Scharfe. <hidden>
Date: 2021-02-28 11:24:43

Am 17.02.21 um 19:38 schrieb Junio C Hamano:
I wonder, in addition to "match" and "exclude", if we want to allow
"always" as well.
I added "match" because that describe option is used by GIT-VERSION-GEN,
so I imagine it's generally useful for version names in spec files.  Not
sure why I misspelled it "merge" in the subject, though. o_O

"exclude" is not in there, but I threw it in anyway, as the example in
77d21f29ea (describe: teach describe negative pattern matches,
2017-01-18) made sense to me.  It complements "match" nicely.

I had "always" in proof-of-concept patch because I hadn't decided what
to do with commits that git describe doesn't find a description for,
and wanted to check the full output of git log --pretty='%(describe)'.
For a release tarball of a repo that lacks tags it would be easier to
use %h instead of %(describe:always) -- or tag the release.

That's why I didn't include "always" in the latest patches, but if it
turns out to be useful for someone then I wouldn't them adding it.
Also, looking further into the future, I wonder if we should aim to
eventually unify %h and %H as well as %(describe) into one,
i.e. various ways to spell a commit object name, given that there is
a separate effort underway to unify pretty and for-each-ref format
strings.

E.g. %(objectname) is the same as %H, and %(objectname:short) is the
same as %h, so this might be %(objectname:describe), or something
along the line.
According to the glossary and object name is:

        The unique identifier of an object.  The
        object name is usually represented by a 40 character
        hexadecimal string.  Also colloquially called SHA-1.

And that's how I understand it as well.  The object layer with it's
hashes on one hand and descriptions based on refs and commit relations
on the other are separate things in my mind.  %(describe) falling back
to %h when :always is given makes sense to me; %(objectname) "falling
forward" to show describe output feels like a layering violation.

René
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help