git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v12 11/11] Documentation: add documentation for 'git interpret-trailers'

From
Christian Couder <christian.couder@gmail.com>
Date
Jul 1, 2014, 13:34 UTC
Message-ID
<CAP8UFD3QhOaepNzDwdxdV5hyjV4L7qvqREULZZYXBiiVbZZ9Ow@mail.gmail.com>
In-Reply-To
<53B150B4.1030303@gmail.com>
On Mon, Jun 30, 2014 at 1:57 PM, Jakub Narębski <jnareb@gmail.com> wrote:
Show 25 quoted lines
> Christian Couder wrote:
>
>> +------------
>> +
>> +* Configure a 'sign' trailer with a command to automatically add a
>> +  'Signed-off-by: ' with the author information only if there is no
>> +  'Signed-off-by: ' already, and show how it works:
>> ++
>> +------------
>> +$ git config trailer.sign.key "Signed-off-by: "
>> +$ git config trailer.sign.ifmissing add
>> +$ git config trailer.sign.ifexists doNothing
>> +$ git config trailer.sign.command 'echo "$(git config user.name) <$(git
>> config user.email)>"'
>> +$ git interpret-trailers <<EOF
>> +> EOF
>
>
> How to configure git-interpret-trailers command so that it follow
> current rules for DCO:
> * Signed-off-by: is always at bottom; we can have
>   signoff+signoff+ack+signoff
> * Signed-off-by: can repeat itself with the same author;
>   this denotes steps in coming up with current version of the patch.
> * but we shouldn't repeat the same signoff one after another
Right now something like: signoff+signoff+ack+signoff is not supported.

It could be, if someone implements more options for the "trailer.<token>.where" config variable. Right now the only options are "after" and "before", but it could be possible to have "end" and "start" too. And maybe "end" should be the default instead of "after".

When I first worked on this series I was under the impression that people wanted to group all the trailers with the same token together.

Show 11 quoted lines
> So we want to allow this:
>
>   Signed-off-by: A U Thor <author@example.com>
>   Signed-off-by: Joe R. Hacker <joe@hacker.com>
>   Acked-by: D E Veloper <developer@example.com>
>   Signed-off-by: C O Mitter <committer@example.com>
>
> but prevent this
>
>   Signed-off-by: C O Mitter <committer@example.com>
>   Signed-off-by: C O Mitter <committer@example.com>
This can be prevented by using "addIfDifferentNeighbor", for example like this:
$ git config trailer.sign.ifexists addIfDifferentNeighbor
So I think the full config for what you want would be something like:

$ git config trailer.sign.key "Signed-off-by: " $ git config trailer.sign.ifmissing add $ git config trailer.sign.ifexists addIfDifferentNeighbor $ git config trailer.sign.where end $ git config trailer.sign.command 'echo "$(git config user.name) <$(git config user.email)>"'

$ git config trailer.ack.key "Acked-by: " $ git config trailer.ack.ifmissing add $ git config trailer.ack.ifexists addIfDifferentNeighbor $ git config trailer.ack.where end

Best, Christian.

Previous: Jakub Narębski
Message 19 of 19 in “Add interpret-trailers builtin”
  1. 00/11 Add interpret-trailers builtinChristian Couder, May 25, 2014
  2. 01/11 trailer: add data structures and basic functionsChristian Couder, May 25, 2014
  3. 02/11 trailer: process trailers from input message and argumentsChristian Couder, May 25, 2014
  4. 03/11 trailer: read and process config informationChristian Couder, May 25, 2014
  5. 04/11 trailer: process command line trailer argumentsChristian Couder, May 25, 2014
  6. 05/11 trailer: parse trailers from file or stdinChristian Couder, May 25, 2014
  7. 06/11 trailer: put all the processing together and printChristian Couder, May 25, 2014
  8. 07/11 trailer: add interpret-trailers commandChristian Couder, May 25, 2014
  9. 08/11 trailer: add tests for "git interpret-trailers"Christian Couder, May 25, 2014
  10. Junio C HamanoMay 28, 2014
  11. 09/11 trailer: execute command from 'trailer.<name>.command'Christian Couder, May 25, 2014
  12. 10/11 trailer: add tests for commands in config fileChristian Couder, May 25, 2014
  13. 11/11 Documentation: add documentation for 'git interpret-trailers'Christian Couder, May 25, 2014
  14. Junio C HamanoMay 28, 2014
  15. Christian CouderJun 29, 2014
  16. Junio C HamanoJun 30, 2014
  17. Junio C HamanoMay 28, 2014
  18. Jakub NarębskiJun 30, 2014
  19. Christian CouderJul 1, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.