Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
diffcore-break: don't divide by zero
author
John Keeping
<john@keeping.me.uk>
Wed, 3 Apr 2013 19:24:05 +0000
(20:24 +0100)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 3 Apr 2013 19:48:02 +0000
(12:48 -0700)
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 <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diffcore-break.c
patch
|
blob
|
history
raw
|
patch
| inline |
side by side
(parent:
1599999
)
diff --git
a/diffcore-break.c
b/diffcore-break.c
index 44f8678d22ea466b0867591429bbcc3285cdaf91..1d9e530a84758e34d616690684c4842cd1af4cfc 100644
(file)
--- a/
diffcore-break.c
+++ b/
diffcore-break.c
@@
-68,6
+68,9
@@
static int should_break(struct diff_filespec *src,
if (max_size < MINIMUM_BREAK_SIZE)
return 0; /* we do not break too small filepair */
+ if (!src->size)
+ return 0; /* we do not let empty files get renamed */
+
if (diffcore_count_changes(src, dst,
&src->cnt_data, &dst->cnt_data,
0,