Re: Finding the name of the parent branch?
- From
- Santi Béjar <santi@agolina.net>
- Date
- Jan 30, 2009, 13:16 UTC
- Message-ID
- <adf1fd3d0901300516y3d1bf58dmda9c5172586d828@mail.gmail.com>
- In-Reply-To
- <a2633edd0901300456y48e8d78fn199675f2ae105c8@mail.gmail.com>
2009/1/30 Pascal Obry <pascal@obry.net>:
Show 8 quoted lines
> 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.
Show 10 quoted lines
> 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...
Show 9 quoted lines
> 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.
Show 7 quoted lines
> > 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...
Show 14 quoted lines
>> 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