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

Re: Recording the current branch on each commit?

From
Johan Herland <johan@herland.net>
Date
Apr 27, 2014, 09:09 UTC
Message-ID
<CALKQrgfmBByMwMhxu3HkJqJGWy2Rwvij6Hi1_4npjfsxcSgpaQ@mail.gmail.com>
In-Reply-To
<535C47BF.2070805@game-point.net>
On Sun, Apr 27, 2014 at 1:56 AM, Jeremy Morton <admin@game-point.net> wrote:
> Currently, git records a checksum, author, commit date/time, and commit
> message with every commit (as get be seen from 'git log').  I think it would
> be useful if, along with the Author and Date, git recorded the name of the
> current branch on each commit.

This has been discussed multiple times in the past. One example here: http://thread.gmane.org/gmane.comp.version-control.git/229422

I believe the current conclusion (if any) is that encoding such information as a _structural_ part of the commit object is not useful. See the old thread(s) for the actual pro/con arguments.

That said, you are of course free to add this information to your own commit messages, by appending something like "Made-on-branch: frotz". In a company setting, you can even create a commit message template or (prepare-)commit-msg hook to have this line created automatically for you and your co-workers. You could even append such information retroactively to existing commits with "git notes". There is also the current interpret-trailers effort by Christian Couder [1] that should be useful in creating and managing such lines.

[1]: http://thread.gmane.org/gmane.comp.version-control.git/245874
Show 5 quoted lines
> The branch name can provide useful
> contextual information.  For instance, let's say I'm developing a suite of
> games.  If the commit message says "Added basic options dialog", it might be
> useful to see that the branch name is "pacman-minigame" indicating that the
> commit pertains to the options dialog in the Pacman minigame.

In that partcular case, ISTM that the context ("pacman-minigame") would actually be better preserved elsewhere. E.g. the commits touch files in a particular "minigames/pacman" subdir, or you prefix the context in the commit message ("pacman-minigame: Added basic options dialog"). Also, such a "topic" branch is often tied to a specific issue in some bug/issue tracker, and it would in any case be natural to mention the bug/issue ID in the commit message, at which point the tracker can provide more context and discussion.

> Basically,
> I'm saying that well-named branches can and do carry useful contextual
> information that oughtn't to be thrown away.  Currently, when you delete
> that branch, you lose the branch name altogether.

Some would argue that branches are not always well-named... But anyway, if the branch ends up getting merged to the mainline, the merge commit defaults to a message like "Merge branch 'pacman-minigame'".

> So what do you think?  Would it be good to have a patch to add this feature?

One is free to try, of course, but I wouldn't get my hopes up for a patch that changes the fundamental format of the commit object to include something that many users/workflows would consider to be pure cruft.

If you still believe that this is useful enough to warrant a change to the commit object format, it is probably better to start off putting the information in the commit message (as described above), and provide some tools that demonstrate the added value of this information. If that is successful and gains momentum, the git community can certainly reconsider whether it makes sense to fold it into a more formalized part of the commit object.

...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: Junio C HamanoNext: Jeremy Morton
Message 14 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.