From 3d234d0afacd355eb30b330a56bd2efa73bd44d5 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 4 Aug 2006 18:21:41 +0200 Subject: [PATCH] merge-recursive: fix rename handling To handle renames properly, we iterate through all file names of both heads, the current one, and the one to be merged. Only that there was a bug, where it was checked if the file name was present in both heads, but the result of the check was never used. Instead, the merge proceeded as if both heads contained that file. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- merge-recursive.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/merge-recursive.c b/merge-recursive.c index 74a329faa..f5c0080a5 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -810,8 +810,10 @@ static int process_renames(struct path_list *a_renames, } else { compare = strcmp(a_renames->items[i].path, b_renames->items[j].path); - ren1 = a_renames->items[i++].util; - ren2 = b_renames->items[j++].util; + if (compare <= 0) + ren1 = a_renames->items[i++].util; + if (compare >= 0) + ren2 = b_renames->items[j++].util; } /* TODO: refactor, so that 1/2 are not needed */ -- 2.30.2