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

Re: [PATCH] commit: Add -f, --fixes <commit> option to add Fixes: line

From
Christian Couder <christian.couder@gmail.com>
Date
Oct 29, 2013, 04:45 UTC
Message-ID
<CAP8UFD0R7JAkQSiX=1nqg_fmo-o7B-ekkxvsjHFgwspk5V0PHA@mail.gmail.com>
In-Reply-To
<xmqq1u35iwyl.fsf@gitster.dls.corp.google.com>
On Mon, Oct 28, 2013 at 10:08 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 13 quoted lines
>
> Thinking aloud further, what I had in mind was along the lines of
> the following.
>
>  * The most generic external interface would be spelled as
>
>     --trailer <token>[=<param>]
>
>    where <token> can be things like "signoff", "closes", "acked-by",
>    "change-id", "fixes", etc.; they can be taken from an unbounded
>    set.  The historical "--signoff" can become a short-hand for
>    "--trailer signoff".  More than one "--trailer" option can be
>    given on a single command line.
Ok, and maybe the <token> could also be the full trailer like "Signed-off-by".
Show 49 quoted lines
>  * The token is used to look into the configuration, e.g.,
>
>    [commitTrailer "signoff"]
>         style = append-norepeat
>         trailer = Signed-off-by
>         command = echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"'
>
>    [commitTrailer "change-id"]
>         style = append-only-if-missing
>         trailer = Change-Id
>         command = 'git hash-object -t commit --stdin <$GIT_PROTO_COMMIT'
>
>    [commitTrailer "fixes"]
>         style = overwrite
>         trailer = Fixes
>         command = 'git log -1 --oneline --format="%h (%s)" --abbrev-commit=14 $ARG'
>
>    where
>
>    - "commitTrailer.<token>.style" defines the interaction with
>      existing trailer of the same kind (e.g. S-o-b: accumulates by
>      appending, but we try not to repeat the same sign-off twice
>      which would show you forwarding your own message you are the
>      last person in the Sign-off chain; Fixes: if there is already
>      one will remove the old one and replaces; etc.);
>
>    - "commitTrailer.<token>.trailer" defines the trailer label at
>      the beginning of the trailer line;
>
>    - "commitTrailer.<token>.command" gives the command to run to
>      obtain the payload after the "trailer" label.  A handful
>      obvious and useful variables are exported for the command to
>      use, and <param> is exported as $ARG, if present.
>
> With the most generic syntax, with the above commitTrailer.fixes.*
> configuration, I would imagine that you can say something like:
>
>     git commit --trailer fixes="v2.6.12^{/^i386: tweak frobnitz}"
>
> to say that the first commit you find traversing the history of
> v2.6.12 whose title is "i386: tweak frobnitz" was faulty, and you
> are creating a commit that corrects its mistake.
>
> Giving some default configuration to often used trailer types
> (e.g. configuration for "--trailer signoff") and promoting some
> commonly used ones into a separate built-in option (e.g. an option
> "--signoff" that does not have to say "--trailer signoff") are
> entirely separate issues, and only time can nudge us into evaluating
> individual types of trailers.

Ok, and maybe, if there is no configuration for a trailer token, we could look at the commit template.

Thanks, Christian.

Previous: Junio C HamanoNext: Junio C Hamano
Message 46 of 49 in “commit: Add -f, --fixes <commit> option to add Fixes: line”
  1. commit: Add -f, --fixes <commit> option to add Fixes: lineJosh Triplett, Oct 27, 2013
  2. Michael HaggertyOct 27, 2013
  3. Theodore Ts'oOct 27, 2013
  4. Josh TriplettOct 27, 2013
  5. Michel LespinasseOct 27, 2013
  6. Josh TriplettOct 27, 2013
  7. Thomas RastOct 27, 2013
  8. Josh TriplettOct 27, 2013
  9. Johan HerlandOct 27, 2013
  10. Christian CouderOct 27, 2013
  11. Johan HerlandOct 28, 2013
  12. Thomas RastOct 28, 2013
  13. Jeff KingOct 29, 2013
  14. Johan HerlandOct 30, 2013
  15. Christian CouderOct 29, 2013
  16. Johan HerlandOct 30, 2013
  17. Christian CouderNov 2, 2013
  18. Stefan BellerOct 27, 2013
  19. Thomas RastOct 27, 2013
  20. Stefan BellerOct 27, 2013
  21. Stefan BellerOct 31, 2013
  22. Documentation: add a script to generate a (long/short) options overviewStefan Beller, Oct 31, 2013
  23. Stefan BellerOct 31, 2013
  24. brian m. carlsonOct 31, 2013
  25. Junio C HamanoNov 1, 2013
  26. Michael HaggertyOct 28, 2013
  27. Johan HerlandOct 28, 2013
  28. Jeff KingOct 29, 2013
  29. Matthieu MoyOct 29, 2013
  30. Johan HerlandOct 30, 2013
  31. Duy NguyenOct 31, 2013
  32. Junio C HamanoOct 31, 2013
  33. Duy NguyenOct 31, 2013
  34. Johan HerlandNov 1, 2013
  35. Duy NguyenOct 27, 2013
  36. Josh TriplettOct 27, 2013
  37. Jim HillOct 28, 2013
  38. Junio C HamanoOct 28, 2013
  39. Josh TriplettOct 28, 2013
  40. Michael HaggertyOct 28, 2013
  41. Christoph HellwigOct 28, 2013
  42. Benjamin HerrenschmidtOct 28, 2013
  43. Russell King - ARM LinuxOct 28, 2013
  44. Russell King - ARM LinuxOct 28, 2013
  45. Junio C HamanoOct 28, 2013
  46. Christian CouderOct 29, 2013
  47. Junio C HamanoOct 29, 2013
  48. Tony LuckOct 30, 2013
  49. Junio C HamanoOct 30, 2013

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.