Browse Source

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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Johannes Schindelin 19 years ago committed by Junio C Hamano
parent
commit
3d234d0afa
  1. 6
      merge-recursive.c

6
merge-recursive.c

@ -810,8 +810,10 @@ static int process_renames(struct path_list *a_renames, @@ -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 */

Loading…
Cancel
Save