Following http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html I have subtree merged a 3rd party library (ezc-reflection) into my repository (pflow). The prefix I used was lib/ezc/trunk/Reflection. Now there have been changes to ezc-reflection but merging them into my repository fails. The merge is attempted in example/ rather than lib/ezc/trunk/Reflection.
I originally set this up with:
git remote add -f ezc-reflection /path/to/ezc-reflection git merge -s ours --no-commit ezc-reflection/master git read-tree --prefix=lib/ezc/trunk/Reflection -u ezc-reflection/master
Reproduce my problem by executing the following:
git clone git://github.com/naderman/pflow.git cd pflow git reset --hard f3e001e3 git fetch git://github.com/naderman/ezc-reflection.git master git merge -s subtree FETCH_HEAD
As you see this results in:
CONFLICT (delete/modify): example/src/doc_comment_parser.php deleted in HEAD and modified in FETCH_HEAD. Version FETCH_HEAD of example/src/doc_comment_parser.php left in tree. Automatic merge failed; fix conflicts and then commit the result.
As long as I don't make any changes to lib/ezc/trunk/Reflection that I want to merge I can work around this by simply repeating my original process like this:
git clone git://github.com/naderman/pflow.git cd pflow git reset --hard f3e001e3 git fetch git://github.com/naderman/ezc-reflection.git master git merge -s ours --no-commit FETCH_HEAD git rm -r lib/ezc/trunk/Reflection/ git read-tree --prefix=lib/ezc/trunk/Reflection/ -u FETCH_HEAD
Why does this problem occur and how can I get the merge to work properly?
Cheers, Nils Adermann