2010-09-02 4 views
2

Я пытаюсь преобразовать старый репозиторий CVS, отслеживающий ветку поставщика, в git, и я столкнулся с проблемой слияния.git merge: remote repo существует в подкаталоге

Репозиторий структурирована следующим образом:

dir1/ 
dir2/ 

dir2 идет от верхнего отделения. Upstream преобразован в git уже, и dir2 в нашем репо является корнем их git-репо. Я хочу добавить их как удаленный и объединить их корень в подкаталог dir2.

Простое слияние не будет работать: git рассматривает свой корень как наш корень и не находит общих файлов.

Слияние с субтитрами не будет работать: вы не можете делиться поддеревом в существующий каталог. Я последовал за How to use the subtree merge strategy руководство, и эта команда не:

git read-tree --prefix=dir2/ -u upstream/master 

Проблема заключается в том, что он обнаруживает «конфликтующие» файлы, которые уже существуют в dir2. Я знаю, что файлы существуют, я хочу, чтобы они объединили файлы.

Любые советы будут оценены.

ответ

2

Хитрость заключается в том, чтобы сделать нормальное рекурсивное слияние с опцией поддерева:

git merge -s recursive -Xsubtree=dir2 upstream/master