From: Elijah Newren Date: Tue, 17 Aug 2010 23:53:19 +0000 (-0600) Subject: merge-recursive: Fix multiple file rename across D/F conflict X-Git-Tag: v1.7.3-rc0~30^2~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ae745487ad7a4ceca0e903da6df21be2c1ebfc29;p=git.git merge-recursive: Fix multiple file rename across D/F conflict In 5a2580d (merge_recursive: Fix renames across paths below D/F conflicts 2010-07-09), detection was added for renames across paths involved in a directory<->file conflict. However, the change accidentally involved reusing an outer loop index ('i') in an inner loop, changing its values and causing a slightly different type of breakage for cases where there are multiple renames across the D/F conflict. Fix by creating a new temporary variable 'i'. Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- diff --git a/merge-recursive.c b/merge-recursive.c index 52936c35a..250e14035 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1020,6 +1020,7 @@ static int process_renames(struct merge_options *o, if (mfi.clean && sha_eq(mfi.sha, ren1->pair->two->sha1) && mfi.mode == ren1->pair->two->mode) { + int i; /* * This message is part of * t6022 test. If you change diff --git a/t/t6031-merge-recursive.sh b/t/t6031-merge-recursive.sh index c50ee295a..bd75e0e64 100755 --- a/t/t6031-merge-recursive.sh +++ b/t/t6031-merge-recursive.sh @@ -57,7 +57,7 @@ test_expect_success FILEMODE 'verify executable bit on file' ' test -x file2 ' -test_expect_failure 'merging with triple rename across D/F conflict' ' +test_expect_success 'merging with triple rename across D/F conflict' ' git reset --hard HEAD && git checkout -b main && git rm -rf . &&