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

Re: Recording the current branch on each commit?

From
Christian Couder <chriscool@tuxfamily.org>
Date
Apr 28, 2014, 06:45 UTC
Message-ID
<20140428.084543.1615507400056684596.chriscool@tuxfamily.org>
In-Reply-To
<CALKQrgdFLc=k9i1+N2458amLMGQa99q55A=N785VfMRwfOH6Rg@mail.gmail.com>
From: Johan Herland <johan@herland.net>
Subject: Re: Recording the current branch on each commit?
Date: Mon, 28 Apr 2014 01:39:26 +0200
Show 34 quoted lines
> On Sun, Apr 27, 2014 at 10:55 PM, Jeremy Morton <admin@game-point.net> wrote:
>> On 27/04/2014 20:33, Johan Herland wrote:
>>> On Sun, Apr 27, 2014 at 7:38 PM, Jeremy Morton<admin@game-point.net>
>>> wrote:
>>>> On 27/04/2014 10:09, Johan Herland wrote:
>>>> As far as I can tell from that discussion, the general opposition to
>>>> encoding the branch name as a structural part of the commit object is
>>>> that,
>>>> for some people's workflows, it would be unhelpful and/or misleading.
>>>> Well
>>>> fair enough then - why don't we make it a setting that is off by default,
>>>> and can easily be switched on?  That way the people for whom tagging the
>>>> branch name would be useful have a very easy way to switch it on.
>>>
>>> Therefore, the most pragmatic and constructive thing to do at this
>>> point, is IMHO to work within the confines of the existing commit
>>> object structure. I actually believe using commit message trailers
>>> like "Made-on-branch: frotz" in addition to some helpful
>>> infrastructure (hooks, templates, git-interpret-trailers, etc.) should
>>> get you pretty much exactly what you want. And if this feature turns
>>> out to be extremely useful for a lot of users, we can certainly
>>> consider changing the commit object format in the future.
>>
>> OK, fair enough.  So I guess what I'd like to see, then, is good built-in
>> functionality in Git for these commit message trailers, so that they are
>> very easy to turn on.  I'd like to be able to tell co-developers to add a
>> one-liner to their git config file rather than some post-commit script.
> 
> I think this is what the interpret-trailers effort is about.
> Unfortunately I have not followed it closely enough to say if your use
> case is already covered by Christian's (CCed) work. Christian: With
> your current patch series, is it possible for Jeremy to configure
> interpret-trailers to automatically append a "Made-on-branch:
> <current_branch>" trailer whenever he creates a commit?
Yes, it's possible. Yesterday, I sent the following patch:
[RFC/PATCH 2/2] trailer: add examples to the documentation
and it shows a commit-msg hook to do something like that:

$ cat >.git/hooks/commit-msg <<EOF #!/bin/sh git interpret-trailers --trim-empty --trailer "git-version: \$(git describe)" "\$1" > "\$1.new" mv "\$1.new" "\$1" EOF $ chmod +x .git/hooks/commit-msg

I think you just need to use the following if you want the branch instead of the git version:

git interpret-trailers --trim-empty --trailer "git-branch: \$(git name-rev --name-only HEAD)" "\$1" > "\$1.new"

It could even be simpler if there was an option (which has already been discussed) that made it possible to modify the file in place. This way one would not need the 'mv "\$1.new" "\$1"' command.

Best, Christian.

Previous: Johan HerlandNext: Jeremy Morton
Message 19 of 69 in “Recording the current branch on each commit?”
  1. Jeremy MortonApr 26, 2014
  2. Robin RosenbergApr 27, 2014
  3. Jeremy MortonApr 27, 2014
  4. James DenholmApr 27, 2014
  5. Jeremy MortonApr 27, 2014
  6. James DenholmApr 27, 2014
  7. Felipe ContrerasApr 28, 2014
  8. Jeremy MortonApr 28, 2014
  9. David KastrupApr 28, 2014
  10. Jeremy MortonApr 28, 2014
  11. David KastrupApr 28, 2014
  12. David LangApr 29, 2014
  13. Junio C HamanoApr 28, 2014
  14. Johan HerlandApr 27, 2014
  15. Jeremy MortonApr 27, 2014
  16. Johan HerlandApr 27, 2014
  17. Jeremy MortonApr 27, 2014
  18. Johan HerlandApr 27, 2014
  19. Christian CouderApr 28, 2014
  20. Jeremy MortonApr 28, 2014
  21. Johan HerlandApr 28, 2014
  22. Jeremy MortonApr 28, 2014
  23. David LangApr 29, 2014
  24. Felipe ContrerasApr 28, 2014
  25. Jeremy MortonApr 28, 2014
  26. Felipe ContrerasApr 28, 2014
  27. Jeremy MortonApr 28, 2014
  28. Felipe ContrerasApr 28, 2014
  29. David KastrupApr 28, 2014
  30. Felipe ContrerasApr 28, 2014
  31. James DenholmApr 28, 2014
  32. Felipe ContrerasApr 28, 2014
  33. Junio C HamanoApr 28, 2014
  34. Felipe ContrerasApr 28, 2014
  35. Junio C HamanoApr 29, 2014
  36. Felipe ContrerasApr 29, 2014
  37. James DenholmApr 29, 2014
  38. Felipe ContrerasApr 29, 2014
  39. James DenholmApr 29, 2014
  40. Felipe ContrerasApr 29, 2014
  41. David KastrupApr 29, 2014
  42. Felipe ContrerasApr 29, 2014
  43. David KastrupApr 29, 2014
  44. Felipe ContrerasApr 29, 2014
  45. David KastrupApr 29, 2014
  46. Felipe ContrerasApr 29, 2014
  47. David KastrupApr 29, 2014
  48. Felipe ContrerasApr 29, 2014
  49. James DenholmApr 29, 2014
  50. Felipe ContrerasApr 29, 2014
  51. James DenholmApr 29, 2014
  52. Felipe ContrerasApr 29, 2014
  53. James DenholmApr 29, 2014
  54. Felipe ContrerasApr 29, 2014
  55. James DenholmApr 29, 2014
  56. Felipe ContrerasApr 29, 2014
  57. James DenholmApr 30, 2014
  58. Felipe ContrerasApr 30, 2014
  59. James DenholmApr 30, 2014
  60. Piotr KrukowieckiApr 29, 2014
  61. Robin RosenbergApr 29, 2014
  62. Sitaram ChamartyApr 28, 2014
  63. Jeremy MortonApr 28, 2014
  64. Sitaram ChamartyApr 28, 2014
  65. David KastrupApr 28, 2014
  66. Sitaram ChamartyApr 28, 2014
  67. Johan HerlandApr 28, 2014
  68. Felipe ContrerasApr 28, 2014
  69. Felipe ContrerasApr 28, 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.