Subject: Re: [PATCH] rerere: enable by default

From: Junio C Hamano <[email-masked]>
Date: Mon, 07 Jun 2021 18:51:35 +0900

"brian m. carlson" <[email-masked]> writes:

> On 2021-06-06 at 12:30:25, Junio C Hamano wrote:
>> By default, the rerere machinery has been disabled since a bug in
>> the machinery could screw up the end user's data at the most
>> stressful time during the end user's workday (i.e. during conflict
>> resolution).
>> 
>> It however has been in wide use without causing much trouble (other
>> than, obviously, replaying a broken conflict resolution that was
>> recorded earlier when the user made a mismerge), and it is about
>> time to enable it by default.
>
> Yes, I think this makes sense.  I've been using it for quite a while
> without problems and I'm usually quite good at breaking things, and if
> we can make the user experience better, which I think rerere does,
> that's definitely a good thing.

I agree in principle, but new tests added by topics in flight need
to get prepared for the change.  There are, for example, misguided
checks that insist that the standard error stream out of "git merge"
must be absolutely empty, which will break when rerere machinery
starts reporting that it prepared the preimage so that it can record
the resolution.  Not just rerere, but such a test is brittle and
will break when other inner parts of the system starts reporting
more (e.g. progress) to the standard error stream.

I'd prefer to see these tests cleaned up in the right way (as
opposed to setting rerere.enabled to false upfront, which hides
these suboptimal tests) before this change to enable rerere by
default lands, so it may need a sizeable preparatory work.

Thanks.