From aeecd23ae2785a0462d42191974e9d9a8e439fbe Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Tue, 28 Feb 2006 20:19:47 -0800
Subject: [PATCH] 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>
---
 diffcore-break.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/diffcore-break.c b/diffcore-break.c
index c57513a4fa..95b5eb492e 100644
--- a/diffcore-break.c
+++ b/diffcore-break.c
@@ -58,6 +58,10 @@ static int should_break(struct diff_filespec *src,
 	if (!S_ISREG(src->mode) || !S_ISREG(dst->mode))
 		return 0; /* leave symlink rename alone */
 
+	if (src->sha1_valid && dst->sha1_valid &&
+	    !memcmp(src->sha1, dst->sha1, 20))
+		return 0; /* they are the same */
+
 	if (diff_populate_filespec(src, 0) || diff_populate_filespec(dst, 0))
 		return 0; /* error but caught downstream */
 
-- 
2.48.1