Skip to content

Commit

Permalink
diffcore-break: micro-optimize by avoiding delta between identical fi…
Browse files Browse the repository at this point in the history
…les.

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>
(cherry picked from aeecd23 commit)
  • Loading branch information
Junio C Hamano committed Mar 1, 2006
1 parent a204756 commit a64dd34
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions diffcore-break.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down

0 comments on commit a64dd34

Please sign in to comment.