git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Santi Béjar" <santi@agolina.net>
To: Pascal Obry <pascal@obry.net>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Finding the name of the parent branch?
Date: Fri, 30 Jan 2009 14:16:50 +0100	[thread overview]
Message-ID: <adf1fd3d0901300516y3d1bf58dmda9c5172586d828@mail.gmail.com> (raw)
In-Reply-To: <a2633edd0901300456y48e8d78fn199675f2ae105c8@mail.gmail.com>

2009/1/30 Pascal Obry <pascal@obry.net>:
> 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

  reply	other threads:[~2009-01-30 13:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-30 10:56 Finding the name of the parent branch? Pascal Obry
2009-01-30 11:18 ` Santi Béjar
2009-01-30 12:56   ` Pascal Obry
2009-01-30 13:16     ` Santi Béjar [this message]
2009-01-30 13:35       ` Pascal Obry
2009-01-30 13:57         ` Santi Béjar
2009-01-30 14:06           ` Pascal Obry
2009-01-30 14:46             ` Santi Béjar
2009-01-30 13:35     ` Michael J Gruber
2009-01-30 14:26 ` Thomas Koch
2009-01-30 15:58   ` Pascal Obry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=adf1fd3d0901300516y3d1bf58dmda9c5172586d828@mail.gmail.com \
    --to=santi@agolina.net \
    --cc=git@vger.kernel.org \
    --cc=pascal@obry.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).