Skip to content

Commit e7b00c5

Browse files
johnkeepinggitster
authored andcommitted
diffcore-break: don't divide by zero
When the source file is empty, the calculation of the merge score results in a division by zero. In the situation: == preimage == == postimage == F (empty file) F (a large file) E (a new empty file) it does not make sense to consider F->E as a rename, so it is better not to break the pre- and post-image of F. Bail out early in this case to avoid hitting the divide-by-zero. This causes the merge score to be left at zero. Signed-off-by: John Keeping <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1599999 commit e7b00c5

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

diffcore-break.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ static int should_break(struct diff_filespec *src,
6868
if (max_size < MINIMUM_BREAK_SIZE)
6969
return 0; /* we do not break too small filepair */
7070

71+
if (!src->size)
72+
return 0; /* we do not let empty files get renamed */
73+
7174
if (diffcore_count_changes(src, dst,
7275
&src->cnt_data, &dst->cnt_data,
7376
0,

0 commit comments

Comments
 (0)