vendor/libgit2/src/diff_generate.c in rugged-0.27.5 vs vendor/libgit2/src/diff_generate.c in rugged-0.27.7

- old
+ new

@@ -271,11 +271,12 @@ git_oid__cmp(&delta->new_file.id, &item->id) == 0) return delta; break; case GIT_DELTA_MODIFIED: if (git_oid__cmp(&delta->old_file.id, &item->id) == 0 || - git_oid__cmp(&delta->new_file.id, &item->id) == 0) + (delta->new_file.mode == item->mode && + git_oid__cmp(&delta->new_file.id, &item->id) == 0)) return delta; break; default: break; } @@ -598,11 +599,11 @@ diff->base.perf.stat_calls++; if (p_stat(full_path.ptr, &st) < 0) { error = git_path_set_error(errno, entry.path, "stat"); - git_buf_free(&full_path); + git_buf_dispose(&full_path); return error; } git_index_entry__init_from_stat(&entry, &st, (diff->diffcaps & GIT_DIFFCAPS_TRUST_MODE_BITS) != 0); @@ -661,10 +662,10 @@ error = git_index_add(idx, &updated_entry); diff->index_updated = true; } } - git_buf_free(&full_path); + git_buf_dispose(&full_path); return error; } typedef struct { git_repository *repo;