From: Andy Parkins <andyparkins@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <junkio@cox.net>,
Alexander Litvinov <litvinov2004@gmail.com>
Subject: Re: Rebase, please help
Date: Wed, 11 Apr 2007 11:10:14 +0100 [thread overview]
Message-ID: <200704111110.18461.andyparkins@gmail.com> (raw)
In-Reply-To: <7v8xczqs1q.fsf@assigned-by-dhcp.cox.net>
On Wednesday 2007 April 11 08:38, Junio C Hamano wrote:
> I find that the regular rebase without --merge is faster (at
> least it feels to me that it is, and I kind of understand why;
This is interesting and brings to mind a difficult I've had. I had problems
with rebase when rebasing chains with a file that was self-similar. Indulge
me for a while with this example (forgive the C++, but that's where I had
this problem):
class A : public C
{
// ...
int someVirtualOverride(n) { return ArrayA[n]; }
// ...
}
class B : public C
{
// ...
int someVirtualOverride(n) { return ArrayB[n]; }
// ...
}
One patch changed "ArrayX[n]" to "Array.at(n)" and another inserted more
similar classes around these two.
When I was rebasing, some strange things happened (without any conflict
warnings):
class D : public C
{
int someVirtualOverride(n) { return ArrayA.at(n); }
}
class A : public C
{
int someVirtualOverride(n) { return ArrayB.at(n); }
}
class B : public C
{
int someVirtualOverride(n) { return ArrayB[n]; }
}
Notice that the arrays don't match up with the classes. By some crazy
coincidence and the strong similarity between localities within the file, the
patch successfully applied in the wrong place. The fix was easy enough to do
manually, but it needed a bit of untangling as this was in a longish chain of
revisions that I was rebasing.
I didn't mind much, and hence didn't report it as a bug as I guessed it was to
do with git-rebase using git-am. The annoying part was actually that there
was no conflict warning and hence the rest of the chain applied, making it
all the more difficult to untangle.
My question then is this: given that I don't care about speed of rebase, is it
safe to permanently use --merge with rebase, and would that have caught the
error in the above case?
Andy
--
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com
next prev parent reply other threads:[~2007-04-11 10:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-11 1:52 Rebase, please help Alexander Litvinov
2007-04-11 7:38 ` Junio C Hamano
2007-04-11 10:10 ` Andy Parkins [this message]
2007-04-12 20:37 ` Junio C Hamano
2007-04-12 21:22 ` Linus Torvalds
2007-04-11 7:48 ` Alex Riesen
2007-04-11 9:46 ` Junio C Hamano
2007-04-11 11:32 ` Alex Riesen
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=200704111110.18461.andyparkins@gmail.com \
--to=andyparkins@gmail.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=litvinov2004@gmail.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).