X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=diffcore-rename.c;h=79030412dbf883147f35678505ad147dc9c240a8;hb=f48fd68887a03756658a46486a5dd1301c5a655f;hp=57a74b6bb83e14af5f7336f397f79fbfcdc8b5f7;hpb=2a54323ce5241992c272c90ebf2be14eaac873eb;p=git.git diff --git a/diffcore-rename.c b/diffcore-rename.c index 57a74b6bb..79030412d 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -109,6 +109,8 @@ static int is_exact_match(struct diff_filespec *src, return 0; if (src->size != dst->size) return 0; + if (src->sha1_valid && dst->sha1_valid) + return !hashcmp(src->sha1, dst->sha1); if (diff_populate_filespec(src, 0) || diff_populate_filespec(dst, 0)) return 0; if (src->size == dst->size && @@ -170,7 +172,8 @@ static int estimate_similarity(struct diff_filespec *src, return 0; /* error but caught downstream */ - delta_limit = base_size * (MAX_SCORE-minimum_score) / MAX_SCORE; + delta_limit = (unsigned long) + (base_size * (MAX_SCORE-minimum_score) / MAX_SCORE); if (diffcore_count_changes(src->data, src->size, dst->data, dst->size, &src->cnt_data, &dst->cnt_data, @@ -184,7 +187,7 @@ static int estimate_similarity(struct diff_filespec *src, if (!dst->size) score = 0; /* should not happen */ else - score = src_copied * MAX_SCORE / max_size; + score = (int)(src_copied * MAX_SCORE / max_size); return score; } @@ -295,7 +298,7 @@ void diffcore_rename(struct diff_options *options) struct diff_filespec *one = rename_src[j].one; if (!is_exact_match(one, two, contents_too)) continue; - record_rename_pair(i, j, MAX_SCORE); + record_rename_pair(i, j, (int)MAX_SCORE); rename_count++; break; /* we are done with this entry */ }