Browse Source

Merge branch 'jc/diff' into next

* jc/diff:
  Fix up diffcore-rename scoring
maint
Junio C Hamano 19 years ago
parent
commit
cf1e6d1ec5
  1. 12
      diffcore-rename.c

12
diffcore-rename.c

@ -133,7 +133,7 @@ static int estimate_similarity(struct diff_filespec *src, @@ -133,7 +133,7 @@ static int estimate_similarity(struct diff_filespec *src,
* match than anything else; the destination does not even
* call into this function in that case.
*/
unsigned long delta_size, base_size, src_copied, literal_added;
unsigned long max_size, delta_size, base_size, src_copied, literal_added;
unsigned long delta_limit;
int score;

@ -144,9 +144,9 @@ static int estimate_similarity(struct diff_filespec *src, @@ -144,9 +144,9 @@ static int estimate_similarity(struct diff_filespec *src,
if (!S_ISREG(src->mode) || !S_ISREG(dst->mode))
return 0;

delta_size = ((src->size < dst->size) ?
(dst->size - src->size) : (src->size - dst->size));
max_size = ((src->size > dst->size) ? src->size : dst->size);
base_size = ((src->size < dst->size) ? src->size : dst->size);
delta_size = max_size - base_size;

/* We would not consider edits that change the file size so
* drastically. delta_size must be smaller than
@ -174,12 +174,10 @@ static int estimate_similarity(struct diff_filespec *src, @@ -174,12 +174,10 @@ static int estimate_similarity(struct diff_filespec *src,
/* How similar are they?
* what percentage of material in dst are from source?
*/
if (dst->size < src_copied)
score = MAX_SCORE;
else if (!dst->size)
if (!dst->size)
score = 0; /* should not happen */
else
score = src_copied * MAX_SCORE / dst->size;
score = src_copied * MAX_SCORE / max_size;
return score;
}


Loading…
Cancel
Save