diff options
author | Junio C Hamano <junkio@cox.net> | 2006-02-28 16:01:36 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-02-28 20:20:04 -0800 |
commit | 65416758cd83772f2f3c69f1bd1f501608e64745 (patch) | |
tree | f485bb85d2c949372344265842466669d0a167d0 /diffcore-rename.c | |
parent | aeecd23ae2785a0462d42191974e9d9a8e439fbe (diff) | |
download | git-65416758cd83772f2f3c69f1bd1f501608e64745.tar.gz git-65416758cd83772f2f3c69f1bd1f501608e64745.tar.xz |
diffcore-rename: split out the delta counting code.
This is to rework diffcore break/rename/copy detection code
so that it does not affected when deltifier code gets improved.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r-- | diffcore-rename.c | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c index ffd126af0..55cf1c37f 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -4,8 +4,6 @@ #include "cache.h" #include "diff.h" #include "diffcore.h" -#include "delta.h" -#include "count-delta.h" /* Table of rename/copy destinations */ @@ -135,7 +133,6 @@ static int estimate_similarity(struct diff_filespec *src, * match than anything else; the destination does not even * call into this function in that case. */ - void *delta; unsigned long delta_size, base_size, src_copied, literal_added; unsigned long delta_limit; int score; @@ -165,28 +162,13 @@ static int estimate_similarity(struct diff_filespec *src, if (diff_populate_filespec(src, 0) || diff_populate_filespec(dst, 0)) return 0; /* error but caught downstream */ - delta_limit = base_size * (MAX_SCORE-minimum_score) / MAX_SCORE; - delta = diff_delta(src->data, src->size, - dst->data, dst->size, - &delta_size, delta_limit); - if (!delta) - /* If delta_limit is exceeded, we have too much differences */ - return 0; - - /* A delta that has a lot of literal additions would have - * big delta_size no matter what else it does. - */ - if (base_size * (MAX_SCORE-minimum_score) < delta_size * MAX_SCORE) { - free(delta); - return 0; - } - /* Estimate the edit size by interpreting delta. */ - if (count_delta(delta, delta_size, &src_copied, &literal_added)) { - free(delta); + delta_limit = base_size * (MAX_SCORE-minimum_score) / MAX_SCORE; + if (diffcore_count_changes(src->data, src->size, + dst->data, dst->size, + delta_limit, + &src_copied, &literal_added)) return 0; - } - free(delta); /* Extent of damage */ if (src->size + literal_added < src_copied) |