git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Charles Bailey <charles@hashpling.org>
To: Avery Pennarun <apenwarr@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	Paul Gardiner <osronline@glidos.net>,
	git@vger.kernel.org
Subject: Re: How to find where a branch was taken from.
Date: Fri, 21 Mar 2008 18:32:25 +0000	[thread overview]
Message-ID: <20080321183225.GA13583@hashpling.org> (raw)
In-Reply-To: <32541b130803211039h1f5b8da5k8fb353d46e57b05e@mail.gmail.com>

On Fri, Mar 21, 2008 at 01:39:11PM -0400, Avery Pennarun wrote:
> On Fri, Mar 21, 2008 at 5:13 AM, Junio C Hamano <gitster@pobox.com> wrote:
> > Paul Gardiner <osronline@glidos.net> writes:
> >  > I need a command that will find the remote branch from which
> >  > the currently checked out branch was started. I don't know
> >  > git very well, and the only way I can think to do it so far
> >  > is to iterate over the remote branches and find the one
> >  > for which git-rev-list <branch>..HEAD gives the smallest
> >  > number of objects. I'm guessing there must be a better
> >  > way. Any ideas?
> >
> >  There will be _no_ way.  It is simply impossible.
> >
> >     $ git checkout -b my-new-branch origin/somerandombranch~27^2^2~23
> >
> >  is a perfectly valid way to create a new branch.
> >
> >  You would probably want to re-think in a bigger picture, _why_
> >  you would want to find such information, [...]
> 
> I frequently want to do this.  Basically, I start from "some version"
> of the upstream program, and I put together some patches, then I want
> to use rebase to reorder and recombine them before I send them in.

So you're looking to do a git rebase -i?

> In order to do this, however, I'm forced to remember where I got my
> "original" version from, which isn't even that important.  As the
> developer of a particular patch, all I *really* should have to know
> is: a) here are the things I added since I made my topic branch, and
> b) here is the branch I want to rebase them onto so I can submit my
> cleaned patches upstream.

Why are you forced to remember?

If you don't want to transplant the patches onto where the remote
branch is now, then you just need to pick a commit on your current
branch that is before any commit that you want to reorder/recombine
and do a git rebase -i <sha1>. (It should be easy to pick a commit
from git log. Perhaps it's the first one with and author that isn't
you.  Alternatively, if you don't want to look at the log and you know
you haven't made more than N commits you could just git rebase -i
HEAD~N.)

If you want to rebase them on to the latest version of the remote
branch then it's even simpler. You just do:

git rebase -i remote/branch

I'm not sure I understand why you need to know where your original
branch was made from?

Charles.

  reply	other threads:[~2008-03-21 18:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-21  9:05 How to find where a branch was taken from Paul Gardiner
2008-03-21  9:13 ` Junio C Hamano
2008-03-21  9:15   ` Junio C Hamano
2008-03-21 17:39   ` Avery Pennarun
2008-03-21 18:32     ` Charles Bailey [this message]
2008-03-21 18:48       ` Avery Pennarun
2008-03-21 20:03         ` Dmitry Potapov
2008-03-21 20:22           ` Daniel Barkalow
2008-03-21 20:25             ` J. Bruce Fields
2008-03-22 12:12     ` Paul Gardiner
2008-03-22 16:41       ` Jeff King
2008-03-22 16:54         ` Paul Gardiner

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=20080321183225.GA13583@hashpling.org \
    --to=charles@hashpling.org \
    --cc=apenwarr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=osronline@glidos.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).