I'm not trying to change the way git does things (which works perfectly well), I'm asking for some extra information to be added to the commit so that analysis of the ancestry graph can be tied to the branch topics that the original author was working from. Currently if you have a rebase-branch/ff-merge-to-master workflow, the graph of commits looks like a single user produced all of the code. It would be very useful for both forensic and display purposes to categorize those commits by their original topics, but that history is lost in such a workflow. Certainly there are work-arounds (notes etc.) to capture this history, but I think that this is a basic feature which most projects would benefit from. I fully understand that branches are not global and that it may be confusing to keep an "author branch" name around in some cases, but the vast majority of cases where authors pick meaningful branch names would benefit from being able to look back and go "ah-ha! that was a commit to fix bug such-and-such" or "that was a commit from when I was working on super-cool feature X". Even just knowing that two commits were from different (or the same) branches would tell you something useful about the evolution of the project. Arguing that branch names are local and thus meaningless misses the point: branches are *names* which were meaningful to the author at the time the branch was being worked on. Discarding this information makes it harder to reason about or display the history of the project and is an irritating defect in an otherwise wonderful tool. On Wed, Jul 3, 2013 at 2:33 AM, Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> wrote: > Ed Hutchins <eh@xxxxxxxxxxxx> writes: > >> I realize that branch names are ephemeral repo-specific things, but it >> would be really useful to be able to determine what branch a commit >> was authored from (as a hint to ancestry graph layout tools, for >> example). Is there any way to do this currently, is it planned, or >> would it be deemed useful enough to be worth adding to each commit >> object? > > FWIW, this is what Mercurial's "named branches" do. Instead of having > branches point to commit, each commit says what branch it belongs to. > > One drawback of this approach is that the branch name is part of the > commit and can't be changed without changing the commit's sha1. Hence, a > local, private, branch name becomes permanent the day it's merged > upstream. > > (for completeness: Mercurial also has essentially Git-like branches, > but they call this "bookmarks") > > -- > Matthieu Moy > http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html