From: Alejandro Colomar <alx@kernel.org>
To: Collin Funk <collin.funk1@gmail.com>
Cc: linux-man@vger.kernel.org, linux-kernel@vger.kernel.org,
Alyssa Ross <hi@alyssa.is>, Greg KH <greg@kroah.com>,
git@vger.kernel.org
Subject: Re: [PATCH] CONTRIBUTING.d/: Document format of 'Fixes:' trailer fields
Date: Wed, 4 Feb 2026 14:33:57 +0100 [thread overview]
Message-ID: <aYNITpLKCEYFOOsw@devuan> (raw)
In-Reply-To: <87zf5p8jgv.fsf@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4212 bytes --]
[CC += git@]
Hi Collin,
On 2026-02-03T16:01:52-0800, Collin Funk wrote:
> Alejandro Colomar <alx@kernel.org> writes:
>
> > Signed-off-by: Alejandro Colomar <alx@kernel.org>
> > ---
> >
> > Hi!
> >
> > I hadn't yet documented how to produce the Fixes: trailer fields in the
> > Linux man-pages project. We require the commit-date to disambiguate
> > possible hash (and subject) collisions. This documents how to produce
> > them easily.
> >
> > I hope this will be useful to other projects. I've been using this
> > format for some time, and it has some nice properties: it shows at first
> > glance the date of a commit (which itself gives an idea of how many
> > stable versions would need to be fixed). It can also be parsed by a
> > machine, by having a consistent and simple (unambiguous) format.
> >
> >
> > Have a lovely night!
> > Alex
> >
> > CONTRIBUTING.d/git | 16 ++++++++++++++++
> > CONTRIBUTING.d/patches/description | 11 +++++++++++
> > 2 files changed, 27 insertions(+)
> >
> > diff --git a/CONTRIBUTING.d/git b/CONTRIBUTING.d/git
> > index 4b7a95472..3f944a23c 100644
> > --- a/CONTRIBUTING.d/git
> > +++ b/CONTRIBUTING.d/git
> > @@ -43,6 +43,22 @@ Description
> > $ git config --global \
> > sendemail.sendmailcmd 'mutt -H - && true';
> >
> > + Commit references
> > + 'Fixes:' trailer fields should have the following format.
> > +
> > + Fixes: 12-char-hash ([author-date,] commit-date; "subject")
> > +
> > + where the author date is optional, and only included if it's
> > + somehow important. The commit date is often more important, as
> > + it's sorted, and thus can be used to find (with a binary search)
> > + a commit whose hash and subject may have collisions. To produce
> > + such fields, the following git aliases are useful.
> > +
> > + $ git config --global alias.ref \
> > + "show --no-patch --abbrev=12 --date=short --format=tformat:'%C(auto)%h%C(reset) %C(dim white)(%cd%x3B \"%C(reset)%C(auto)%s%C(reset)%C(dim white)\")%C(reset)'"
> > + $ git config --global alias.ref2 \
> > + "show --no-patch --abbrev=12 --date=short --format=tformat:'%C(auto)%h%C(reset) %C(dim white)(%ad, %cd%x3B \"%C(reset)%C(auto)%s%C(reset)%C(dim white)\")%C(reset)'"
> > +
>
> I would recommend taking a look at the one mentioned in git's
> SubmittingPatches. It looks fairly similar to yours:
>
> $ git ref HEAD
> d9fb823121b1 (2026-02-02; "maintainer-makefile: propagate MAKEINFO to gendocs")
> $ git show -s --pretty=reference HEAD
> d9fb82312 (maintainer-makefile: propagate MAKEINFO to gendocs, 2026-02-02)
I've seen that format before (while investigating all the --pretty=
options). I didn't know that was used in git(1)'s SubmittingPatches,
though.
I considered it, and concluded that it was suboptimal for several
reasons:
- It is unclear whether ', 2026-02-02' is part of the commit message.
Since it's common practice to quote the subject in other projects
--such as the kernel--, a format that quotes the subject is
preferrable.
- The date is a short and fixed-width field. Readability is better if
such fields go early, as they would be aligned. Compare:
8df2abb81a90 (man/man3/stpncpy.3: wfix, 2026-01-06)
a17ed1cefd7f (man/man3type/intN_t.3type: STANDARDS: These conform to C23, 2026-01-06)
8df2abb81a90 (2026-01-06; "man/man3/stpncpy.3: wfix")
a17ed1cefd7f (2026-01-06; "man/man3type/intN_t.3type: STANDARDS: These conform to C23")
- I use a semicolon, which is a stronger separator than a comma, as
that allows me to use a comma for adding another sub-field to the
date field. In some cases, the author date is useful:
$ git ref2 8df2abb81a90
8df2abb81a90 (2026-01-06, 2026-01-06; "man/man3/stpncpy.3: wfix")
This also allows further future extension, for example for including
the author and/or committer names, as other fields.
I wondered a few months ago whether I should let git know about this
to improve --pretty=reference. I guess this is the time. I've thus
added them to CC.
Have a lovely day!
Alex
> Collin
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2026-02-04 13:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 20:25 [PATCH] CONTRIBUTING.d/: Document format of 'Fixes:' trailer fields Alejandro Colomar
2026-02-04 0:01 ` Collin Funk
2026-02-04 13:33 ` Alejandro Colomar [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=aYNITpLKCEYFOOsw@devuan \
--to=alx@kernel.org \
--cc=collin.funk1@gmail.com \
--cc=git@vger.kernel.org \
--cc=greg@kroah.com \
--cc=hi@alyssa.is \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
/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.