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>
  • Loading branch information
Junio C Hamano committed Mar 1, 2006
1 parent e3601e8 commit aeecd23
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 aeecd23

Please sign in to comment.