Thread (6 messages) flat view 6 messages, 3 authors, 2016-06-15

Re: [PATCH 2/2] Fix t3404 assumption that `wc -l` does not use whitespace.

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:44:32

Possibly related (same subject, not in this thread)

Hi,

don't cull me from the Cc: list.  This has been mentioned on this list so 
often, it is not even funny any more.

On Mon, 28 Apr 2008, Jörg Sommer wrote:
Johannes Schindelin [off-list ref] wrote:
quoted
On Sun, 27 Apr 2008, Junio C Hamano wrote:
quoted
Johannes Schindelin [off-list ref] writes:
quoted
...  It did not help that I hated the fact that that series changed 
the original design without even understanding it.
Care to elaborate on this point further?  I do not get it.
The original implementation of -p was modeled closely after 
filter-branch, in that it created a subdirectory (dotest/rewritten) 
containing the new commit names for those commits that were rewritten.
But that wasn't the way rebase -i works.
I know exactly how it works. D'oh.
You had to jump in before pick_one does anything which clearly shows you 
did something different from the default way.
That is bullshit.  I did not do anything "different from the default way".  
I carefully designed an interface that was easy to understand, because it 
mimicked how you would do the same _by hand_, but without the hassle to 
actually having to do everything by hand.

In other words, rebase -i is just a cherry-pick in a loop.

And _exactly_ the same should have been done for -p.  Namely, _not_ 
introduce some artificial marks, but use the _commit names_!
quoted
Now, whenever a commit was picked, the parents would be looked up in 
dotest/rewritten, and replaced with the rewritten name (or left 
unchanged if they were not rewritten).
This approach doesn't work when you change the order of commits.
Take the commit A, B and C in this order and reorder them to A C B:
1. pick A, A^ was not rewritten, nothing changed, A stays the same
2. pick C, C^ was not rewritten, nothing changed, C stays the same
3. pick B, B^ was not rewritten, nothing changed, B stays the same
You carefully ignored how I intended the parents to be used: only for 
merges.
quoted
Basically, the output of rebase -i -p is ugly now, because you have 
_two_ ways of specifying things,
quoted
I have the feeling that I have to repeat my point again, so that it is not 
ignored -- again.  Maybe an example would help:

-- snip --
pick abcdefg This is the first commit to be picked
reset cdefghij
pick zyxwvux A commit in a side-branch
merge recursive abcdefg
-- snap --

I am convinced that this syntax does not need much explanation.
But above you said this syntax + mark is “ugly”. Strange.
You know, I find it strange how you try to make a _point_ in 
misunderstanding me.  Did I not mention that the way to have _two_ ways to 
reference commits was ugly?  You did not even bother to remove that part 
from what you quoted.
quoted
A patch implementing a syntax like this would have won my unilateral 
approval
I doubt this. You refused any changes to your idea and your code from 
the beginning. You didn't answer questions and doesn't take part on the 
discussion [1] about the new syntax.
Well, you carefully ignored (but removed from the quoted text) my 
explanation.  Nevertheless, I did participate in the discussion, and 
mentioned my preferred way of doing things.

Sheesh,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help