All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Morton <admin@game-point.net>
To: Johan Herland <johan@herland.net>
Cc: Git mailing list <git@vger.kernel.org>
Subject: Re: Recording the current branch on each commit?
Date: Sun, 27 Apr 2014 18:38:13 +0100	[thread overview]
Message-ID: <535D4085.4040707@game-point.net> (raw)
In-Reply-To: <CALKQrgfmBByMwMhxu3HkJqJGWy2Rwvij6Hi1_4npjfsxcSgpaQ@mail.gmail.com>

On 27/04/2014 10:09, Johan Herland wrote:
> 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.

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.  I know that for the workflows I personally have used in 
the past, such tagging would be very useful.  Quite often I have been 
looking through the Git log and wondered what feature a commit was "part 
of", because I have feature branches.  Just knowing that branch name 
would be really useful, but the branch has since been deleted... and in 
the case of a ff-merge (which I thought was recommended in Git if 
possible), the branch name is completely gone.

> 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

Well I guess that's another way of doing it.  So, why aren't Author and 
Date trailers?  They don't seem any more fundamental to me than branch 
name.  I mean the only checkin information you really *need* is the 
checksum, and commit's parents.  The Author and Date are just extra 
pieces of information you might find useful sometimes, right?  A bit 
like some people might find branch checkin name useful sometimes...?

>> 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

Again, this is a pain because you have to remember to manually tag every 
commit message with "pacman-minigame", and it takes up precious space in 
the (already short) commit message.

> 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.

I think it would only be natural to mention the bug# in the final commit 
that actually fixes the bug or implements the feature, not the checkins 
leading up to that.  And, it's still not *guaranteed* that the coder 
will remember to put the bug# in even that commit message.

>> 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

But when they are, why should that info be thrown away?  When they're 
not well-named, they can be ignored (or the branch name recording 
feature can be turned off!)

> anyway, if the branch ends up getting merged to the mainline, the
> merge commit defaults to a message like "Merge branch
> 'pacman-minigame'".

Only if it's a non-ff merge, which results in less tidy commit trees, 
and hence is often recommended against.  Whatsmore, tracking down which 
branch a commit pertains to is still rather difficult using this 
approach.  You can go back through the history and find "Merge branch 
'pacman-minigame'", but how do you know which commit was the *start* of 
that branch, if they are not tagged with the branch name?

-- 
Best regards,
Jeremy Morton (Jez)

  reply	other threads:[~2014-04-27 17:38 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-26 23:56 Recording the current branch on each commit? Jeremy Morton
2014-04-27  8:51 ` Robin Rosenberg
2014-04-27 17:27   ` Jeremy Morton
2014-04-27 21:40     ` James Denholm
2014-04-27 22:12       ` Jeremy Morton
2014-04-27 22:31         ` James Denholm
2014-04-28  8:32     ` Felipe Contreras
2014-04-28  8:49       ` Jeremy Morton
2014-04-28  9:02         ` David Kastrup
2014-04-28  9:10           ` Jeremy Morton
2014-04-28  9:23             ` David Kastrup
2014-04-29 21:58               ` David Lang
2014-04-28 17:31     ` Junio C Hamano
2014-04-27  9:09 ` Johan Herland
2014-04-27 17:38   ` Jeremy Morton [this message]
2014-04-27 19:33     ` Johan Herland
2014-04-27 20:55       ` Jeremy Morton
2014-04-27 23:39         ` Johan Herland
2014-04-28  6:45           ` Christian Couder
2014-04-28  9:01             ` Jeremy Morton
2014-04-28  9:09               ` Johan Herland
2014-04-28  9:16                 ` Jeremy Morton
2014-04-29 22:14                   ` David Lang
2014-04-28  9:01         ` Felipe Contreras
2014-04-28  9:17           ` Jeremy Morton
2014-04-28  9:17             ` Felipe Contreras
2014-04-28  9:35               ` Jeremy Morton
2014-04-28 17:10                 ` Felipe Contreras
2014-04-28  9:39           ` David Kastrup
2014-04-28 17:22             ` Felipe Contreras
2014-04-28 23:03               ` James Denholm
2014-04-28 23:09                 ` Felipe Contreras
2014-04-28 23:40                   ` Junio C Hamano
2014-04-28 23:50                     ` Felipe Contreras
2014-04-29  0:10                       ` Junio C Hamano
2014-04-29  0:59                         ` Felipe Contreras
2014-04-29  1:29                   ` James Denholm
2014-04-29  3:32                     ` Felipe Contreras
2014-04-29  6:53                       ` James Denholm
2014-04-29  8:28                         ` Felipe Contreras
2014-04-29  9:00                           ` David Kastrup
2014-04-29  9:25                             ` Felipe Contreras
2014-04-29  9:47                               ` David Kastrup
2014-04-29  9:54                                 ` Felipe Contreras
2014-04-29 10:14                                   ` David Kastrup
2014-04-29 10:17                                     ` Felipe Contreras
2014-04-29 10:37                                       ` David Kastrup
2014-04-29 11:46                                         ` Felipe Contreras
2014-04-29 10:59                                       ` James Denholm
2014-04-29 11:47                                         ` Felipe Contreras
2014-04-29 12:25                                           ` James Denholm
2014-04-29 13:31                                             ` Felipe Contreras
2014-04-29 21:04                                               ` James Denholm
2014-04-29 21:45                                                 ` Felipe Contreras
2014-04-29 22:25                                                   ` James Denholm
2014-04-29 23:05                                                     ` Felipe Contreras
2014-04-30  0:22                                                       ` James Denholm
2014-04-30  0:44                                                         ` Felipe Contreras
2014-04-30  1:11                                                           ` James Denholm
2014-04-29 21:48                                       ` Piotr Krukowiecki
2014-04-29  8:34                       ` Robin Rosenberg
2014-04-28  2:30       ` Sitaram Chamarty
2014-04-28  8:52         ` Jeremy Morton
2014-04-28 10:03           ` Sitaram Chamarty
2014-04-28  6:07       ` David Kastrup
2014-04-28 10:03         ` Sitaram Chamarty
2014-04-28 16:38           ` Johan Herland
2014-04-28  8:57       ` Felipe Contreras
2014-04-28  8:50     ` Felipe Contreras
  -- strict thread matches above, loose matches on Subject: below --
2014-04-28  6:36 Max Kirillov
2014-04-28 18:15 ` Junio C Hamano
2014-04-30  4:04   ` Max Kirillov
2014-04-28  6:42 Max Kirillov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=535D4085.4040707@game-point.net \
    --to=admin@game-point.net \
    --cc=git@vger.kernel.org \
    --cc=johan@herland.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.