From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [BUG] rebase -p loses commits
Date: Tue, 17 May 2011 01:39:34 -0400 [thread overview]
Message-ID: <20110517053934.GB10048@sigill.intra.peff.net> (raw)
In-Reply-To: <7vfwoel6vw.fsf@alter.siamese.dyndns.org>
On Mon, May 16, 2011 at 01:36:51PM -0700, Junio C Hamano wrote:
> Hmm, I am confused. You have this:
>
> F---* feature
> / /
> B---M master
>
> and you are at "*". If it were to rebase to linearize,
>
> B---M---F'
>
> with F' that has the same the contents as '*', possibly autoresolved by
> "am -3" and/or "rerere", should be what you would get.
>
> But what does it mean to rebase that on top of master, preserving merges
> in the first place? You are already on top of 'master' and '*' itself
> should be what you should get, no? IOW, shouldn't you already be
> up-to-date?
To be honest, I am not sure what should happen. How this example came
about was that somebody had the same graph, except that a third branch,
"origin", also pointed at "B". They were confused why "git rebase
--pull" made them re-resolve the same conflict that they had
already handled during the merge.
The answer, of course, is that rebase is linearizing the commits instead
of trying to preserve the shape of history, and that they really wanted
"rebase -p".
I constructed the simplified example to show that the issue didn't have
to do with origin, but rather with linearizing.
So it's not a real-world example, in that sense. If it had done one of:
1. Said "you are up to date" and one nothing.
2. Put F' on top of M.
3. Bailed and said "what you're doing is silly".
I would probably have shrugged and left it alone. But claiming success
and losing F entirely is pretty bad.
> I don't use preserve-merge rebase either, but at least when you are
> strictly ahead of the target, nothing should happen, I think.
>
> Perhaps this should be a good start?
Aside from how unreadable that shell conditional is getting, I think
it's an improvement.
-Peff
prev parent reply other threads:[~2011-05-17 5:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-16 10:33 [BUG] rebase -p loses commits Jeff King
2011-05-16 19:42 ` Andrew Wong
2011-05-16 20:36 ` Junio C Hamano
2011-05-17 0:33 ` Andrew Wong
2011-05-17 0:54 ` Junio C Hamano
2011-05-17 1:02 ` Junio C Hamano
2011-05-17 5:44 ` Jeff King
2011-05-17 16:07 ` Andrew Wong
2011-05-17 16:12 ` Jeff King
2011-05-21 5:51 ` [RFC] Interactive-rebase doesn't pick all children of "upstream" Andrew Wong
2011-05-21 5:51 ` Andrew Wong
2011-05-21 7:34 ` Andrew Wong
2011-06-05 5:32 ` [PATCH] " Andrew Wong
2011-06-05 9:16 ` Johannes Sixt
2011-06-05 14:11 ` Andrew Wong
2011-06-07 4:08 ` [PATCH v2] rebase -i -p: doesn't pick certain merge commits that are " Andrew Wong
2011-06-07 4:08 ` [PATCH] " Andrew Wong
2011-06-12 16:28 ` Andrew Wong
2011-06-13 16:01 ` Junio C Hamano
2011-06-13 17:30 ` Andrew Wong
2011-06-16 22:24 ` Stephen Haberman
2011-06-18 6:40 ` Andrew Wong
2011-06-18 15:17 ` Stephen Haberman
2011-06-18 16:47 ` Andrew Wong
2011-06-18 17:12 ` Stephen Haberman
2011-06-18 22:12 ` [PATCH] rebase -i -p: include non-first-parent commits in todo list Andrew Wong
2011-06-18 22:13 ` [PATCH] rebase -i -p: doesn't pick certain merge commits that are children of "upstream" Andrew Wong
2011-05-17 5:39 ` Jeff King [this message]
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=20110517053934.GB10048@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).