提交 650e2f67 编写于 作者: J Junio C Hamano

git-pickaxe: re-scan the blob after making progress with -M

Otherwise we would miss copied lines that are contained in the
parts before or after the part that we find after splitting the
blame_entry (i.e. split[0] and split[2]).
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 0421d9f8
......@@ -766,7 +766,7 @@ static int find_move_in_parent(struct scoreboard *sb,
struct origin *target,
struct origin *parent)
{
int last_in_target;
int last_in_target, made_progress;
struct blame_entry *e, split[3];
mmfile_t file_p;
char type[10];
......@@ -784,14 +784,20 @@ static int find_move_in_parent(struct scoreboard *sb,
return 0;
}
for (e = sb->ent; e; e = e->next) {
if (e->guilty || cmp_suspect(e->suspect, target))
continue;
find_copy_in_blob(sb, e, parent, split, &file_p);
if (split[1].suspect &&
blame_move_score < ent_score(sb, &split[1]))
split_blame(sb, split, e);
decref_split(split);
made_progress = 1;
while (made_progress) {
made_progress = 0;
for (e = sb->ent; e; e = e->next) {
if (e->guilty || cmp_suspect(e->suspect, target))
continue;
find_copy_in_blob(sb, e, parent, split, &file_p);
if (split[1].suspect &&
blame_move_score < ent_score(sb, &split[1])) {
split_blame(sb, split, e);
made_progress = 1;
}
decref_split(split);
}
}
free(blob_p);
return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册