Re: [PATCH v3 3/3] correct ce_compare_data() in a middle of a merge
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Jul 8, 2016, 17:13 UTC
- Message-ID
- <f78fa94d-abd2-05a2-c411-15e2ffdb7dae@web.de>
- In-Reply-To
- <xmqqmvlsm6hu.fsf@gitster.mtv.corp.google.com>
On 07/08/2016 06:36 PM, Junio C Hamano wrote:
Show 36 quoted lines
> Torsten Bögershausen <tboegi@web.de> writes:
>
>>> I dunno. I really do not like that extra sha1 argument added all
>>> over the callchain by this patch.
>>>
>>> Or did you mean other calls to add_cacheinfo()?
>>
>> I didn't mean too much - the whole call chain touches code where I
>> am not able to comment on details.
>> I'm happy to test other implementations, if someone suggests a
>> path, so to say.
>
> I did a bit of experiment.
>
> When 1/3 alone is applied, and then only changes for t/t6038 from
> 3/3 is picked, (i.e. we do not add the extra "don't look at index,
> check this contents"), your "Merge addition of text=auto eol=CRLF"
> test would fail.
>
> And then with this further on top:
>
> diff --git a/merge-recursive.c b/merge-recursive.c
> index b880ae5..628c8ed 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -202,6 +202,9 @@ static int add_cacheinfo(unsigned int mode, const unsigned char *sha1,
> const char *path, int stage, int refresh, int options)
> {
> struct cache_entry *ce;
> +
> + if (!stage)
> + remove_file_from_cache(path);
> ce = make_cache_entry(mode, sha1 ? sha1 : null_sha1, path, stage,
> (refresh ? (CE_MATCH_REFRESH |
> CE_MATCH_IGNORE_MISSING) : 0 ));
>Thanks :-) Did that experiment made it to a branch somewhere ?