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;