From: Stephen Haberman <stephen@exigencecorp.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: Heads up: rebase -i -p will be made sane again
Date: Tue, 27 Jan 2009 08:54:18 -0600 [thread overview]
Message-ID: <20090127085418.e113ad5a.stephen@exigencecorp.com> (raw)
In-Reply-To: <alpine.DEB.1.00.0901271012550.14855@racer>
> Dear list,
Thanks for keeping me on the cc list--several of the later stages of
cruft are my fault, so I don't know that I'll be able to help any more
than commentary on the use cases I was trying to fulfill.
> As for the design bug I want to fix: imagine this history:
>
> ------A
> / /
> / /
> ---- B
> \ \
> \ \
> C-----D-----E = HEAD
>
> A, C and D touch the same file, and A and D agree on the contents.
>
> Now, rebase -p A does the following at the moment:
>
> ------A-----E' = HEAD
> / /
> / /
> ---- B
>
> In other words, C is truly forgotten, and it is pretended that D never
> happened, either. That is exactly what test case 2 in t3410 tests for
> [*1*].
>
> This is insane.
Agreed.
Does this mean you're just getting rid of the code that calls "rev list
--cherry-pick"?
If so, I'd be all for that--I did not introduce it, nor fully understand
its nuances, and t3410 was just a hack to get the behavior of a rebase
with a dropped/cherry picked commit from the previous behavior of being
a no-op to instead do "something".
A few times I've pondered just removing the --cherry-pick/drop commit
part of rebase-p, but assumed it was there for a reason.
Also, yeah, don't treat the test cases in t3410 as "the result should be
this exact DAG" but "the result should be something that is not a
noop/sane".
> [*1*] The code in t3410 was not really easy to read, even if there was an
> explanation what it tried to do, but the test code was inconsitent,
> sometimes tagging, sometimes not, sometimes committing with -a, sometimes
> "git add"ing first, yet almost repetitive.
>
> In my endeavor not only to understand it, and either fix my code or the
> code in t3410, I refactored it so that others should have a much easier
> time to understand what it actually does.
Thanks for cleaning it up.
I recently saw a test of yours use a `test_commit` bash function that I
really like. My last patch submission debacle had a patch cleaning up
t3411 by introducing `test_commit`--I can brave `git send-email` again
if you have any interest in me resending it.
Thanks,
Stephen
next prev parent reply other threads:[~2009-01-27 15:14 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 [this message]
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
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=20090127085418.e113ad5a.stephen@exigencecorp.com \
--to=stephen@exigencecorp.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
/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).