Re: Finding the name of the parent branch?
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
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