Репозиторий Mercurial как оболочка для SVN

Для разработки мы используем репозиторий Mercurial в качестве оболочки для репозитория SVN для проверки кода в проекте. Все работает нормально: разработчики получают изменения и фиксируют собственные изменения в репозитории Mercurial, а руководитель проекта иногда переносит изменения из репозитория сервера Mercurial в репозиторий сервера SVN.

Но мы столкнулись с проблемой. Однажды два разработчика внесли два набора изменений. Для отправки на сервер они объединили все изменения и отправили на сервер. Все хорошо, но после этого мы не можем протолкнуть изменения из репозитория Mercurial в SVN. Получаем ошибку:

abort: К сожалению, не удается найти родительский элемент svn для версии слияния.

В объединенном наборе изменений есть два родителя, которые были объединены, и похоже, что это правильно, но я не могу вставить svn после и не понимаю, почему SVN не может найти родителя.

Любая помощь была бы очень полезной, спасибо


person breez    schedule 03.12.2010    source источник


Ответы (1)


Mercurial, особенно hgsubversion, может быть очень хорошим клиентом для Subversion. Однако сказал, что есть ограничения, которые необходимо соблюдать.

Хорошо то, что вы можете

1) Сделайте несколько коммитов в своем меркуриальном репозитории и отправьте все эти изменения как одну ревизию в репозиторий Subversion.

Плохо то, что у вас все еще нет свободы обмена между различными ртутными репозиториями.

1) Вы не можете обменивать изменения без использования Subversion в качестве посредника.

В основном я использую hgsubversion, когда у нас есть уже существующий репозиторий Subversion, и мы хотим перейти на Mercurial без потери всей истории, содержащейся в репозитории subbersion.

Если вы хотите продолжать использовать, вы должны соблюдать определенные ограничения. См. Ссылку 2. Ниже.

Использованная литература:

  1. Как обрабатывать слияния с помощью hgsubversion?
  2. Проблема рабочего процесса от Mercurial до Mercurial к Subversion
person pyfunc    schedule 03.12.2010