merge-recursive: fix merging a subdirectory into the root directory
authorElijah Newren <newren@gmail.com>
Tue, 22 Oct 2019 21:22:50 +0000 (21:22 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Oct 2019 02:32:49 +0000 (11:32 +0900)
commit49b8133a9ece199a17db8bb2545202c6eac67485
tree81f3495b13d63be99a17fa849f71c596d56f4f3f
parentd3eebaad5ef02284c86d6c4b80199eac58c6729b
merge-recursive: fix merging a subdirectory into the root directory

We allow renaming all entries in e.g. a directory named z/ into a
directory named y/ to be detected as a z/ -> y/ rename, so that if the
other side of history adds any files to the directory z/ in the mean
time, we can provide the hint that they should be moved to y/.

There is no reason to not allow 'y/' to be the root directory, but the
code did not handle that case correctly.  Add a testcase and the
necessary special checks to support this case.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
t/t6043-merge-rename-directories.sh