[PATCH] Mode only changes from diff.
This fixes another bug. - Mode-only changes were pruned incorrectly from the output. - Added test to catch the above problem. - Normalize rename/copy similarity score in the diff-raw output to per-cent, no matter what scale we internally use. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
96716a1976
commit
9fdade0673
6
diff.c
6
diff.c
@ -517,7 +517,8 @@ static void diff_flush_raw(struct diff_filepair *p,
|
||||
switch (p->status) {
|
||||
case 'C': case 'R':
|
||||
two_paths = 1;
|
||||
sprintf(status, "%c%1d", p->status, p->score);
|
||||
sprintf(status, "%c%03d", p->status,
|
||||
(int)(0.5 + p->score * 100.0/MAX_SCORE));
|
||||
break;
|
||||
default:
|
||||
two_paths = 0;
|
||||
@ -750,7 +751,8 @@ static void diff_resolve_rename_copy(void)
|
||||
if (!p->status)
|
||||
p->status = 'R';
|
||||
}
|
||||
else if (memcmp(p->one->sha1, p->two->sha1, 20))
|
||||
else if (memcmp(p->one->sha1, p->two->sha1, 20) ||
|
||||
p->one->mode != p->two->mode)
|
||||
p->status = 'M';
|
||||
else
|
||||
/* this is a "no-change" entry */
|
||||
|
||||
Reference in New Issue
Block a user