[PATCH] diffcore-break.c: various fixes.
authorJunio C Hamano <junkio@cox.net>
Sat, 4 Jun 2005 06:05:57 +0000 (23:05 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 5 Jun 2005 21:14:58 +0000 (14:14 -0700)
commitf78c79c5d4486f47dcd69ea7fef93e84051d4496
treef14b7a4fb10b95ff4c0d6c7aecb6f05c6b72f8aa
parent49d9e85d1103fe1d0fcb73956643b93acc5c1f4f
[PATCH] diffcore-break.c: various fixes.

This fixes three bugs in the -B heuristics.

 - Although it was advertised that the initial break criteria
   used was the same as what diffcore-rename uses, it was using
   something different.  Instead of using smaller of src and dst
   size to compare with "edit" size, (insertion and deletion),
   it was using larger of src and dst, unlike the rename/copy
   detection logic.  This caused the parameter to -B to mean
   something different from the one to -M and -C.  To compensate
   for this change, the default break score is also changed to
   match that of the default for rename/copy.

 - The code would have crashed with division by zero when trying
   to break an originally empty file.

 - Contrary to what the comment said, the algorithm was breaking
   small files, only to later merge them together.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diffcore-break.c
diffcore.h