git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).