merge-recursive: clarify code in was_tracked()
commitf8d83fb66c653fff0541067a0b5a0821d3f548f9
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 26 Jul 2016 16:05:57 +0000 (26 18:05 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 Jul 2016 18:13:44 +0000 (26 11:13 -0700)
treeb18ea00e8dbbe6bca83bdf83c77724060a518ade
parent7e97e1003349107b9fdc388bb4aa006fae9ab560
merge-recursive: clarify code in was_tracked()

It can be puzzling to see that was_tracked() asks to get an index entry
by name, but does not take a negative return value for an answer.

The reason we have to do this is that cache_name_pos() only looks for
entries in stage 0, even if nobody asked for any stage in particular.

Let's rewrite the logic a little bit, to handle the easy case early: if
cache_name_pos() returned a non-negative position, we know it is a match,
and we do not even have to compare the name again (cache_name_pos() did
that for us already). We can say right away: yes, this file was tracked.

Only if there was no exact match do we need to look harder for any
matching entry in stage 2.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c