Skip to content

Commit aeecd23

Browse files
author
Junio C Hamano
committed
diffcore-break: micro-optimize by avoiding delta between identical files.
We did not check if we have the same file on both sides when computing break score. This is usually not a problem, but if the user said --find-copies-harde with -B, we ended up trying a delta between the same data even when we know the SHA1 hash of both sides match. Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent e3601e8 commit aeecd23

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

diffcore-break.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ static int should_break(struct diff_filespec *src,
5858
if (!S_ISREG(src->mode) || !S_ISREG(dst->mode))
5959
return 0; /* leave symlink rename alone */
6060

61+
if (src->sha1_valid && dst->sha1_valid &&
62+
!memcmp(src->sha1, dst->sha1, 20))
63+
return 0; /* they are the same */
64+
6165
if (diff_populate_filespec(src, 0) || diff_populate_filespec(dst, 0))
6266
return 0; /* error but caught downstream */
6367

0 commit comments

Comments
 (0)