From: Torsten Bögershausen Date: Fri, 08 Jul 2016 17:13:40 GMT Subject: Re: [PATCH v3 3/3] correct ce_compare_data() in a middle of a merge Message-ID: In-Reply-To: On 07/08/2016 06:36 PM, Junio C Hamano wrote: > Torsten Bögershausen 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 ?