threads / discuss / 25593

conflict merging directory replaced by symlink

Subject: conflict merging directory replaced by symlink

## tl;dr

One message between Oct 29, 2010 and Oct 29, 2010.

replies: 0people: 1as markdown or json

Mischa POSLAWSKY· Oct 29, 2010, 17:32 UTC · lore
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

← back to recent threads