From 046ec3c9d68d4a79ed7efb044d275c62e8a49873 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jun 2016 00:47:51 -0500 Subject: [PATCH] index_read_index: differentiate on mode Treat index entries with different modes as different, which they are, at least for the purposes of up-to-date calculations. --- src/index.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.c b/src/index.c index 135bf9ff5..b1ee65ffe 100644 --- a/src/index.c +++ b/src/index.c @@ -2987,7 +2987,8 @@ int git_index_read_index( /* Path and stage are equal, if the OID is equal, keep it to * keep the stat cache data. */ - if (git_oid_equal(&old_entry->id, &new_entry->id)) { + if (git_oid_equal(&old_entry->id, &new_entry->id) && + old_entry->mode == new_entry->mode) { add_entry = (git_index_entry *)old_entry; } else { dup_entry = (git_index_entry *)new_entry;