diffcore-break: do not break too small filepair.
Somehow we checked only one side and not the other. By checking the filesize upfront, we can bypass generating delta unnecessarily. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
86c9523305
commit
0532a5e46b
@ -62,6 +62,8 @@ static int should_break(struct diff_filespec *src,
|
|||||||
return 0; /* error but caught downstream */
|
return 0; /* error but caught downstream */
|
||||||
|
|
||||||
base_size = ((src->size < dst->size) ? src->size : dst->size);
|
base_size = ((src->size < dst->size) ? src->size : dst->size);
|
||||||
|
if (base_size < MINIMUM_BREAK_SIZE)
|
||||||
|
return 0; /* we do not break too small filepair */
|
||||||
|
|
||||||
delta = diff_delta(src->data, src->size,
|
delta = diff_delta(src->data, src->size,
|
||||||
dst->data, dst->size,
|
dst->data, dst->size,
|
||||||
@ -170,8 +172,7 @@ void diffcore_break(int break_score)
|
|||||||
!S_ISDIR(p->one->mode) && !S_ISDIR(p->two->mode) &&
|
!S_ISDIR(p->one->mode) && !S_ISDIR(p->two->mode) &&
|
||||||
!strcmp(p->one->path, p->two->path)) {
|
!strcmp(p->one->path, p->two->path)) {
|
||||||
if (should_break(p->one, p->two,
|
if (should_break(p->one, p->two,
|
||||||
break_score, &score) &&
|
break_score, &score)) {
|
||||||
MINIMUM_BREAK_SIZE <= p->one->size) {
|
|
||||||
/* Split this into delete and create */
|
/* Split this into delete and create */
|
||||||
struct diff_filespec *null_one, *null_two;
|
struct diff_filespec *null_one, *null_two;
|
||||||
struct diff_filepair *dp;
|
struct diff_filepair *dp;
|
||||||
|
Loading…
Reference in New Issue
Block a user