Re: Finding the name of the parent branch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux