conflict merging directory replaced by symlink

From: Mischa POSLAWSKY <hidden>
Date: 2016-06-15 22:49:56

Hello list,

After replacing a directory by a symlink, branches without that change will
conflict whenever they change something unrelated in the link target.
To illustrate:

	git init &&
	mkdir common &&
	touch common/test &&
	git add common/test &&
	mkdir dupe &&
	touch dupe/test &&
	git add dupe/test && 
	git commit -m 'initial setup' &&

	git rm -r dupe &&
	ln -s common dupe &&
	git add dupe &&
	git commit -m 'replace dir by symlink' &&

	git checkout -b prelink HEAD^ &&
	touch common/irrelevant &&
	git add common/irrelevant &&
	git commit -m 'additional common file' &&

	git checkout - &&
	git merge prelink

fails in git v1.7.2.3 with:
CONFLICT (file/directory): There is a directory with name dupe in prelink.
Adding dupe as dupe~HEAD
Automatic merge failed; fix conflicts and then commit the result.
I'd expect the same resolution as when adding a symlink from a different
name, without replacing the directory, but this happily merges without
raising a fuss.

Does anyone recognise or know a reason for this behaviour?

Thanks!
-- 
Mischa
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help