From: "Shawn O. Pearce" <spearce@spearce.org>
To: linux@horizon.com
Cc: git@vger.kernel.org
Subject: Re: How to do a reverse rebase?
Date: Mon, 20 Aug 2007 01:58:09 -0400 [thread overview]
Message-ID: <20070820055809.GZ27913@spearce.org> (raw)
In-Reply-To: <20070820053237.9349.qmail@science.horizon.com>
linux@horizon.com wrote:
> I don't want to rebase HEAD on *that*, but rather rebase *that*
> on top of the current HEAD.
...
> Currently, when I remember, I'll use git-cherry-pick and manually
> rename branches.
>
> Is there an easier way?
I don't think so. To do the merge of those files we need a working
directory to operate in; that working directory is the one you have.
It sounds like what you want is this:
old=`git symbolic-ref HEAD` &&
git checkout HEAD^0 &&
git cherry-pick debug_hack &&
git branch -f debug_hack HEAD &&
git checkout $old
What's really needed is to avoid switching to the branch, as
you mentioned. Instead switch to the --onto (implied or given
by user). That way you can avoid updating a lot of files in the
working directory for no (compelling) reason. Looking at the part of
git-rebase.sh that is affected by this (l.284-322) this is probably
not that difficult to improve. Just a little bit of work to keep
track of everything.
Of course `git-rebase -i` is a completely different implementation,
so now you are also talking about l.409-480 of that. Ick.
> Or should I just learn StGit?
Probably. It handles patch stacks easier than core Git. Or so I'm
told. I find `git rebase -i` good enough for my needs, but it going
first to the debug_hack branch, then to the onto does sort of suck.
--
Shawn.
next prev parent reply other threads:[~2007-08-20 5:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-20 5:32 How to do a reverse rebase? linux
2007-08-20 5:58 ` Shawn O. Pearce [this message]
2007-08-20 6:33 ` Junio C Hamano
2007-08-20 10:39 ` linux
2007-08-20 9:49 ` Johannes Sixt
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=20070820055809.GZ27913@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=linux@horizon.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.