From: Junio C Hamano Date: Wed, 1 Mar 2006 04:19:47 +0000 (-0800) Subject: diffcore-break: micro-optimize by avoiding delta between identical files. X-Git-Tag: v1.2.4~6 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=a64dd34d8cce018742badb49b87c5c565be655ce;p=git.git 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 (cherry picked from aeecd23ae2785a0462d42191974e9d9a8e439fbe commit) --- diff --git a/diffcore-break.c b/diffcore-break.c index c57513a4..95b5eb49 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 */