git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Haberman <stephen@exigencecorp.com>
To: Andrew Wong <andrew.w@sohovfx.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	Andrew Wong <andrew.kw.w@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH] rebase -i -p: doesn't pick certain merge commits that are children of "upstream"
Date: Thu, 16 Jun 2011 17:24:54 -0500	[thread overview]
Message-ID: <20110616172454.13ff1a18@sh9> (raw)
In-Reply-To: <4DF64932.1090607@sohovfx.com>

Hey,

> Ever since Jeff brought up this issue, I've been wondering what
> issue/workflow is that patch trying to fix.

I'm fairly sure the case the patch was fixing is t3411's "squash F1 into
D1".

Where, starting with a tree like:

# A1 - B1 - D1 - E1 - F1
#       \        /
#        -- C1 --

The user is on F1 and issues: "git rebase -i -p B1", the todo list
is "D1, E1, F1" (no C1), and they choose "D1 squash F1, E1",
the resulting tree should be:

# A1 - B1 - D2 - E2
#       \        /
#        -- C1 --

And, the fix was that C1 should not be in the todo list.

Perhaps that is unreasonable with whatever you guys are looking at now,
but, IIRC, the use case was that B1=some old commit, like a 2.0
release, and a bunch of work happened on the C1 branch, it was merged
in E1, but now when you want to rebase D1/E1/F1 on top of B1, you don't
want all of the noise of the C1 commit(s), since when rewriting E1 into
E2, you can just reuse the un-rewritten C1 as its 2nd parent.

Well, and not just the noise--since the todo is still flat, if C1
was listed in the todo, there's no way to recreate E2 as a merge and
maintain the C1 commit(s) as a separate branch. I think C1 would get
flattened between D2/E2, depending on where it was in the todo. You'd
lose a merge, contrary to the -p flag. That sounds like the core issue
that was being fixed.

The patch in question:

http://article.gmane.org/gmane.comp.version-control.git/98251

Did actually have a test (t3411) but it was still failing until
the following commit:

http://article.gmane.org/gmane.comp.version-control.git/98253

Where the test changed from expect failure to expect success. I
remember that looking odd at the time, but for some reason liked the
commits being separate.

- Stephen

  reply	other threads:[~2011-06-16 22:25 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 [this message]
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   ` [BUG] rebase -p loses commits Jeff King

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=20110616172454.13ff1a18@sh9 \
    --to=stephen@exigencecorp.com \
    --cc=andrew.kw.w@gmail.com \
    --cc=andrew.w@sohovfx.com \
    --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).