From 6bac10d89d0889118a3e747c9c9210fd437c140d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 10 Sep 2005 12:42:32 -0700 Subject: Fix copy marking from diffcore-rename. When (A,B) ==> (B,C) rename-copy was detected, we incorrectly said that C was created by copying B. This is because we only check if the path of rename/copy source still exists in the resulting tree to see if the file is renamed out of existence. In this case, the new B is created by copying or renaming A, so the original B is lost and we should say C is a rename of B not a copy of B. Signed-off-by: Junio C Hamano --- diff.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'diff.c') diff --git a/diff.c b/diff.c index 71696c5ee..f8e3cbf1a 100644 --- a/diff.c +++ b/diff.c @@ -955,7 +955,9 @@ static void diff_resolve_rename_copy(void) } /* See if there is some other filepair that * copies from the same source as us. If so - * we are a copy. Otherwise we are a rename. + * we are a copy. Otherwise we are either a + * copy if the path stays, or a rename if it + * does not, but we already handled "stays" case. */ for (j = i + 1; j < q->nr; j++) { pp = q->queue[j]; -- cgit v1.2.1