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 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).