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

Re: storing cover letter of a patch series?

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 11, 2015, 22:24 UTC
Message-ID
<xmqq37ykzjaj.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqqzj0u2k5m.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 31 quoted lines
> Ideally, I would think that you want that information when the
> series is fully cooked and gets merged to a more permanent place in
> the log message of the merge commit.  At that point, where the
> series started may become more clear from the topology (i.e. the set
> difference X^..X for the resulting merge is what got merged).  One
> possible "hacky" convention could be
>
>  - Developers keep rerolling with the "empty commit with cover
>    letter material at the tip".  topic@{upstream}..topic~1 are the
>    real changes, topic~0 is an empty "cover letter material".
>
>  - When the series is fully cooked, a new "git merge" option notices
>    that the topic is structured in a "strange" way, uncaps its tip
>    commit and merges the remainder of the series and adds the cover
>    letter material when presenting the editor to record the merge
>    commit.  That is
>
> 	$ git merge --cover-at-tip topic
>
>    would work roughly by doing the following:
>
>     - verify that "git rev-parse topic^^{tree} topic^{tree}" shows that
>       they record the same tree; otherwise it will error out, saying
>       the tip is not a pure cover.
>
>     - verify that "git rev-list ..topic^" shows that there is
>       something to merge after the tip is removed; otherwise it will
>       error out, saying that there is nothing to merge.
>
>     - run "git merge --no-ff --edit topic^1" but with the log
>       message of topic^{commit} in the editor's template.

To complement the above, if we want to pursue this approach, the following would also help.

 - (obvious) "git pull" would learn the same "--cover-at-tip" option
   and would pass it to "git merge".
 - "git am --cover-at-tip" would make the incoming cover-letter
   material into a non-tree-changing commit at the tip of the
   resulting topic.
 - "git format-patch" would notice a topic branch in such a shape
   and would use the log message of the non-tree-changing commit at
   the tip as part of the cover letter.
Then the overall workflow would become:
 * A developer works on a topic and concludes it by writing a
   summary that should appear in the final merge to the trunk as a
   log message of a non-tree-changing commit at the tip.
 * In "request-to-pull" workflow, the developer requests the topic
   to be pulled.  The integrator uses "git pull --cover-at-tip" and
   the resulting merge commit will carry the summary written by the
   original developer.
 * In e-mail workflow, the developer runs "git format-patch"; the
   cover-letter is populated with the summary the developer wrote.
 * The integrator uses "git am --cover-at-tip" on a new branch,
   which recreates the topic branch the developer created at the
   first step above.
 * The integrator merges the topic with "git merge --cover-at-tip"
   to the trunk, and the resulting merge commit will carry the
   summary written by the original developer.
Previous: Junio C HamanoNext: Michael S. Tsirkin
Message 6 of 57 in “storing cover letter of a patch series?”
  1. Jacob KellerSep 10, 2015
  2. Junio C HamanoSep 10, 2015
  3. Martin FickSep 10, 2015
  4. Jacob KellerSep 10, 2015
  5. Junio C HamanoSep 10, 2015
  6. Junio C HamanoSep 11, 2015
  7. Michael S. TsirkinAug 4, 2016
  8. Junio C HamanoAug 5, 2016
  9. Martin FickAug 5, 2016
  10. Junio C HamanoAug 5, 2016
  11. Junio C HamanoAug 6, 2016
  12. Michael S. TsirkinAug 7, 2016
  13. John KeepingAug 7, 2016
  14. Duy NguyenAug 7, 2016
  15. Junio C HamanoAug 8, 2016
  16. Michael J GruberAug 9, 2016
  17. Jacob KellerSep 10, 2015
  18. Junio C HamanoSep 10, 2015
  19. Jacob KellerSep 10, 2015
  20. Philip OakleySep 10, 2015
  21. Jacob KellerSep 10, 2015
  22. Michael S. TsirkinAug 4, 2016
  23. Johannes SchindelinSep 10, 2015
  24. Jacob KellerSep 10, 2015
  25. Johannes SchindelinSep 10, 2015
  26. Philip OakleySep 10, 2015
  27. doc: show usage of branch descriptionPhilip Oakley, Sep 12, 2015
  28. Jacob KellerSep 12, 2015
  29. Philip OakleySep 14, 2015
  30. Philip OakleySep 14, 2015
  31. Junio C HamanoSep 14, 2015
  32. Philip OakleySep 15, 2015
  33. Philip OakleySep 15, 2015
  34. doc: show usage of branch descriptionPhilip Oakley, Sep 14, 2015
  35. Chris PackhamSep 11, 2015
  36. Simon GlassSep 18, 2015
  37. Stefan BellerAug 8, 2016
  38. Junio C HamanoAug 8, 2016
  39. Duy NguyenAug 13, 2016
  40. Jacob KellerAug 14, 2016
  41. Stefan BellerAug 15, 2016
  42. Jacob KellerAug 15, 2016
  43. Stefan BellerAug 15, 2016
  44. Jacob KellerAug 15, 2016
  45. Duy NguyenAug 15, 2016
  46. Philip OakleyAug 15, 2016
  47. Duy NguyenAug 15, 2016
  48. John KeepingAug 15, 2016
  49. Jacob KellerAug 15, 2016
  50. Junio C HamanoAug 15, 2016
  51. Jacob KellerAug 15, 2016
  52. Philip OakleyAug 15, 2016
  53. Duy NguyenAug 16, 2016
  54. Jacob KellerAug 16, 2016
  55. Duy NguyenAug 16, 2016
  56. Jacob KellerAug 16, 2016
  57. Philip OakleyAug 16, 2016

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.