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)
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).