diff mbox series

[v3,1/4] Documentation: clarify %(contents:XXXX) doc

Message ID 20200707174049.21714-2-chriscool@tuxfamily.org (mailing list archive)
State New, archived
Headers show
Series Add support for %(contents:size) in ref-filter | expand

Commit Message

Christian Couder July 7, 2020, 5:40 p.m. UTC
Let's avoid a big dense paragraph by using an unordered
list for the %(contents:XXXX) format specifiers.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 Documentation/git-for-each-ref.txt | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

Comments

Junio C Hamano July 7, 2020, 7:26 p.m. UTC | #1
Christian Couder <christian.couder@gmail.com> writes:

> +The complete message of a commit or tag object is `contents`. This
> +field can also be used in the following ways:
> +
> +contents:subject::
> +	The "subject" of the commit or tag message.  It's actually the
> +	concatenation of all lines of the commit message up to the
> +	first blank line.

Let's avoid confusing readers by saying "A is X. It's actually Y".

    The first paragraph of the message, which typically is a single
    line, is taken as the "subject" of the commit or the tag
    message.

> +contents:body::
> +	The "body" of the commit or tag message.  It's made of the
> +	lines after the first blank line.

    The remainder of the commit or the tag message that follows the
    "subject".

> +contents:signature::
> +	The optional GPG signature.

I _think_ this only applies to signed tag objects and not signed
commit objects, but this text does not help to decide if I am
right.

> +contents:lines=N::
> +	The first `N` lines of the message.

Good.
Christian Couder July 10, 2020, 4:47 p.m. UTC | #2
On Tue, Jul 7, 2020 at 9:26 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> Christian Couder <christian.couder@gmail.com> writes:

> > +contents:subject::
> > +     The "subject" of the commit or tag message.  It's actually the
> > +     concatenation of all lines of the commit message up to the
> > +     first blank line.
>
> Let's avoid confusing readers by saying "A is X. It's actually Y".
>
>     The first paragraph of the message, which typically is a single
>     line, is taken as the "subject" of the commit or the tag
>     message.

Ok.

> > +contents:body::
> > +     The "body" of the commit or tag message.  It's made of the
> > +     lines after the first blank line.
>
>     The remainder of the commit or the tag message that follows the
>     "subject".

Ok.

> > +contents:signature::
> > +     The optional GPG signature.
>
> I _think_ this only applies to signed tag objects and not signed
> commit objects, but this text does not help to decide if I am
> right.

You are right. It doesn't work for commits:

---------------------------------------------------
$ git cat-file commit refs/heads/signed_commit
tree 9773e6a54521a5d99928685e5f62e937fc6a7593
parent 1d1083b4c06fbb6055a2bd3d665a6d81468db5f5
author Christian Couder <chriscool@tuxfamily.org> 1594397089 +0200
committer Christian Couder <chriscool@tuxfamily.org> 1594397089 +0200
gpgsig -----BEGIN PGP SIGNATURE-----

 iQGzBAABCgAdFiEElaRidyyI6IQbXM36ch8PKcZMVRkFAl8IkaEACgkQch8PKcZM
[...]
 dkYKcRC3
 =fRMN
 -----END PGP SIGNATURE-----

Signed commit
$ git for-each-ref --format='%(contents:signature)' refs/heads/signed_commit

---------------------------------------------------

So I changed the description to:

contents:signature::
    The optional GPG signature of the tag.
diff mbox series

Patch

diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index 6dcd39f6f6..2db9779d54 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -232,12 +232,24 @@  Fields that have name-email-date tuple as its value (`author`,
 `committer`, and `tagger`) can be suffixed with `name`, `email`,
 and `date` to extract the named component.
 
-The complete message in a commit and tag object is `contents`.
-Its first line is `contents:subject`, where subject is the concatenation
-of all lines of the commit message up to the first blank line.  The next
-line is `contents:body`, where body is all of the lines after the first
-blank line.  The optional GPG signature is `contents:signature`.  The
-first `N` lines of the message is obtained using `contents:lines=N`.
+The complete message of a commit or tag object is `contents`. This
+field can also be used in the following ways:
+
+contents:subject::
+	The "subject" of the commit or tag message.  It's actually the
+	concatenation of all lines of the commit message up to the
+	first blank line.
+
+contents:body::
+	The "body" of the commit or tag message.  It's made of the
+	lines after the first blank line.
+
+contents:signature::
+	The optional GPG signature.
+
+contents:lines=N::
+	The first `N` lines of the message.
+
 Additionally, the trailers as interpreted by linkgit:git-interpret-trailers[1]
 are obtained as `trailers` (or by using the historical alias
 `contents:trailers`).  Non-trailer lines from the trailer block can be omitted