diff options
| author | Edward Thomson <ethomson@microsoft.com> | 2015-09-23 13:56:48 -0400 |
|---|---|---|
| committer | Edward Thomson <ethomson@github.com> | 2016-05-26 13:01:06 -0500 |
| commit | 72806f4cca7602460d19fbee8be98449304e92a2 (patch) | |
| tree | 6da631d5b84417cf68afe0d290531baa6a2ba829 /src/diff_print.c | |
| parent | 82175084e17d31051e691ebdcb5990a12d0230e7 (diff) | |
| download | libgit2-72806f4cca7602460d19fbee8be98449304e92a2.tar.gz | |
patch: don't print some headers on pure renames
Diffstat (limited to 'src/diff_print.c')
| -rw-r--r-- | src/diff_print.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/diff_print.c b/src/diff_print.c index 59f751cc2..0253ca696 100644 --- a/src/diff_print.c +++ b/src/diff_print.c @@ -349,6 +349,8 @@ int git_diff_delta__format_file_header( const char *newpfx, int oid_strlen) { + bool skip_index; + if (!oldpfx) oldpfx = DIFF_OLD_PREFIX_DEFAULT; if (!newpfx) @@ -364,11 +366,18 @@ int git_diff_delta__format_file_header( if (delta->status == GIT_DELTA_RENAMED) GITERR_CHECK_ERROR(diff_delta_format_rename_header(out, delta)); - GITERR_CHECK_ERROR(diff_print_oid_range(out, delta, oid_strlen)); + skip_index = (delta->status == GIT_DELTA_RENAMED && + delta->similarity == 100 && + delta->old_file.mode == 0 && + delta->new_file.mode == 0); + + if (!skip_index) { + GITERR_CHECK_ERROR(diff_print_oid_range(out, delta, oid_strlen)); - if ((delta->flags & GIT_DIFF_FLAG_BINARY) == 0) - diff_delta_format_with_paths( - out, delta, oldpfx, newpfx, "--- %s%s\n+++ %s%s\n"); + if ((delta->flags & GIT_DIFF_FLAG_BINARY) == 0) + diff_delta_format_with_paths( + out, delta, oldpfx, newpfx, "--- %s%s\n+++ %s%s\n"); + } return git_buf_oom(out) ? -1 : 0; } |
