From: Stephen Haberman <stephen@exigencecorp.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: Heads up: rebase -i -p will be made sane again
Date: Tue, 27 Jan 2009 21:39:50 -0600 [thread overview]
Message-ID: <20090127213950.3596ecf9.stephen@exigencecorp.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0901280225240.3586@pacific.mpi-cbg.de>
> Actually, I misread t3410 a great deal. The situation is as follows:
>
> ... UPSTREAM
> \
> ... A - B - C -D
>
> A is a patch the upstream does not have, B is a patch UPSTREAM has,
> and "git diff C^!" (i.e. the diff of C to its first parent) is _also_
> identical to a diff of a merge that is in UPSTREAM.
>
> Basically, t3410 tests that after "git rebase -i -p UPSTREAM" and leaving
> the rebase script as-is, essentially, A and D are cherry-picked on top of
> UPSTREAM.
Cool--I "knew" that, but could not have articulated the case as
succinctly.
> > Does this mean you're just getting rid of the code that calls "rev list
> > --cherry-pick"?
>
> Only now do I understand.
>
> I misread the code for --cherry-pick. For merges, it adds the diff to the
> first parent!
Ah, so that is how --cherry-pick works--I'd never looked into the
patch-id stuff before. Makes sense, both of how it is leveraged by
rev-list --cherry-pick and also that it doesn't make sense to only be
against the first parent of merges.
> So I adapted my code to find the "dropped" merges in
> git-rebase--interactive, too, for now, but I guess the proper fix is
> something like this:
So, if C, as a merge commit, doesn't get a patch id anymore (right?),
does that mean that C is included with A and D in the cherry-picking
on top of UPSTREAM (because with no patch id it cannot be recognized
as a duplicate)? So then C' is an empty-commit? This would be fine, I
think, or can you detect that C is a noop somehow without patch ids?
Thanks,
Stephen
next prev parent reply other threads:[~2009-01-28 3:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-27 9:29 Heads up: rebase -i -p will be made sane again Johannes Schindelin
2009-01-27 14:54 ` Stephen Haberman
2009-01-27 17:45 ` [PATCH 0/6] Simplifications of some 'rebase' tests Johannes Schindelin
2009-01-27 17:45 ` [PATCH 1/6] t3404 & t3411: undo copy&paste Johannes Schindelin
2009-01-27 21:01 ` Junio C Hamano
2009-01-27 21:57 ` Johannes Schindelin
2009-01-27 22:46 ` Junio C Hamano
2009-01-27 22:53 ` Johannes Schindelin
2009-01-27 22:34 ` [PATCH v2 0/6] rebase simplifications Johannes Schindelin
2009-01-27 22:50 ` Junio C Hamano
2009-01-27 23:10 ` Johannes Schindelin
2009-01-27 22:34 ` [PATCH v2 1/6] t3404 & t3411: undo copy&paste Johannes Schindelin
2009-01-27 22:34 ` [PATCH v2 2/6] lib-rebase.sh: Document what set_fake_editor() does Johannes Schindelin
2009-01-27 22:34 ` [PATCH v2 3/6] test-lib.sh: introduce test_commit() and test_merge() helpers Johannes Schindelin
2009-01-27 22:34 ` [PATCH v2 4/6] Simplify t3410 Johannes Schindelin
2009-01-27 22:35 ` [PATCH v2 5/6] Simplify t3411 Johannes Schindelin
2009-01-27 22:35 ` [PATCH v2 6/6] Simplify t3412 Johannes Schindelin
2009-01-27 17:46 ` [PATCH 2/6] lib-rebase.sh: Document what set_fake_editor() does Johannes Schindelin
2009-01-27 21:03 ` Junio C Hamano
2009-01-27 21:58 ` Johannes Schindelin
2009-01-27 17:47 ` [PATCH 3/6] lib-rebase.sh: introduce test_commit() and test_merge() helpers Johannes Schindelin
2009-01-27 21:09 ` Junio C Hamano
2009-01-27 17:48 ` [PATCH 4/6] Simplify t3410 Johannes Schindelin
2009-01-27 17:48 ` [PATCH 5/6] Simplify t3411 Johannes Schindelin
2009-01-27 17:49 ` [PATCH 6/6] Simplify t3412 Johannes Schindelin
2009-01-27 17:59 ` Heads up: rebase -i -p will be made sane again Johannes Schindelin
2009-01-28 1:53 ` Johannes Schindelin
2009-01-28 3:39 ` Stephen Haberman [this message]
2009-01-28 4:01 ` Johannes Schindelin
2009-01-28 5:21 ` Stephen Haberman
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=20090127213950.3596ecf9.stephen@exigencecorp.com \
--to=stephen@exigencecorp.com \
--cc=Johannes.Schindelin@gmx.de \
--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 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.