2009/1/30 Pascal Obry <pascal@xxxxxxxx>: > Santi, > > Thanks for you reply. > >> I think your definition is not well defined. A, B and C are just >> branches of you project, technically they are equivalent. Maybe you > > Right. Yet I want to know from which branch a branch as been started. You can set it when you create the branch: git branch --track newbranch startpointbranch (maybe --track is the default these days for remote branches) And then the config keys: branch.newbranch.remote branch.newbranch.merge will tell you from which branch a branch was started. And it is used in "git pull" to merge from the tracking branch. > You need this to get the proper merge-base for example: > > $ git merge-base C A > 1 > > $ git merge-base B C > 2 > > $ git merge-base B A > 1 1 and 2 are defined in the graph below... > I always know on which topic branch I'm but, as shown above, depending on the > parent branch passed to merge-base you do not get the same branch-point. This > is fine. > > So, when I'm in a topic branch I want to find the name of the parent > branch. The one given > when creating the branch: > > $ git branch B C See above. > > A "stupid" solution whould be to iterate over all branches. Looking > for the merge-base and > at the end output the branch having the youngest merge-base. I'm > looking for something > more efficient... > Maybe if you explain why you want it (a use case) instead of just this specific problem... >> are thinking that the common commits of, say A and B, really belongs >> to A, but this is not the case they belong to both branches. In git a >> branch is really just a pointer to a commit and by extension the >> history, it is not a series of commits. >> >> Just a counterexample, just rearranging you graph: >> >> o---B >> / >> o---2---o---o---o---C >> / >> ---o---1---o---o---o---A >> >> From you description: For B I would get C and for C I would get A. Please, if you quote text do not edit it (the 1 and the 2 in this case). > Don't see this as a counter-example as it is exactly my example. > > Did I missed something? Yes. Compare your sentence and mine: For B I want to get A and for C I want to get B. For B I would get C and for C I would get A. So for B you get A while I get C, and the equivalent for C. Santi -- 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