Skip to content

Commit

Permalink
Do not try to detect move/copy for entries below threshold.
Browse files Browse the repository at this point in the history
Splits for such entries are rejected anyway, so there is no
point even trying to compute them.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
angavrilov authored and gitster committed Jul 15, 2008
1 parent eb46328 commit 1617fe9
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions builtin-blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,8 @@ static int find_move_in_parent(struct scoreboard *sb,
while (made_progress) {
made_progress = 0;
for (e = sb->ent; e; e = e->next) {
if (e->guilty || !same_suspect(e->suspect, target))
if (e->guilty || !same_suspect(e->suspect, target) ||
ent_score(sb, e) < blame_move_score)
continue;
find_copy_in_blob(sb, e, parent, split, &file_p);
if (split[1].suspect &&
Expand All @@ -1037,19 +1038,24 @@ struct blame_list {
*/
static struct blame_list *setup_blame_list(struct scoreboard *sb,
struct origin *target,
int min_score,
int *num_ents_p)
{
struct blame_entry *e;
int num_ents, i;
struct blame_list *blame_list = NULL;

for (e = sb->ent, num_ents = 0; e; e = e->next)
if (!e->scanned && !e->guilty && same_suspect(e->suspect, target))
if (!e->scanned && !e->guilty &&
same_suspect(e->suspect, target) &&
min_score < ent_score(sb, e))
num_ents++;
if (num_ents) {
blame_list = xcalloc(num_ents, sizeof(struct blame_list));
for (e = sb->ent, i = 0; e; e = e->next)
if (!e->scanned && !e->guilty && same_suspect(e->suspect, target))
if (!e->scanned && !e->guilty &&
same_suspect(e->suspect, target) &&
min_score < ent_score(sb, e))
blame_list[i++].ent = e;
}
*num_ents_p = num_ents;
Expand Down Expand Up @@ -1084,7 +1090,7 @@ static int find_copy_in_parent(struct scoreboard *sb,
struct blame_list *blame_list;
int num_ents;

blame_list = setup_blame_list(sb, target, &num_ents);
blame_list = setup_blame_list(sb, target, blame_copy_score, &num_ents);
if (!blame_list)
return 1; /* nothing remains for this target */

Expand Down Expand Up @@ -1166,7 +1172,7 @@ static int find_copy_in_parent(struct scoreboard *sb,

if (!made_progress)
break;
blame_list = setup_blame_list(sb, target, &num_ents);
blame_list = setup_blame_list(sb, target, blame_copy_score, &num_ents);
if (!blame_list) {
retval = 1;
break;
Expand Down

0 comments on commit 1617fe9

Please sign in to comment.