Преобразование из Mercurial в Subversion
Из-за отсутствия поддержки Mercurial в нескольких инструментах и административного подавления стало необходимым преобразовать несколько пробных репозиториев Mercurial в Subversion, чтобы соответствовать стандарту компании.
Существуют ли какие-либо инструменты или предложения, как этого добиться без потери истории изменений и тому подобного?
3 ответа
Расширение convert, которое поставляется с mercurial, может использовать mercurial в качестве src и subversion в качестве dest.
hg convert --dest-type svn hgreponame svnreponame
Убедитесь, что он включен в вашем файле.hgrc.
Если вы хотите потихоньку использовать mercurial, то hgsubversion позволит вам выполнить двунаправленную синхронизацию.
Ответ Ry4an выше делает трюк точно; несколько более подробных инструкций для тех, кто (как и я), у кого возникли проблемы:
Сделайте себе одолжение и не пытайтесь сделать это на Windows. Вам придется установить очень специфическую версию SVN, и даже в этом случае некоторые вещи не будут работать с различными сообщениями об ошибках. Мое решение состояло в том, чтобы загрузить чистый экземпляр AWS, получить на него последние версии mercurial и svn, клонировать репозиторий HG и запустить там конвертирование.
Добавьте это в ваш файл.hgrc, чтобы включить
convert
расширение:[extensions] hgext.convert=
Запустите эту команду:
hg convert --dest-type svn <hg_directory> <directory_for_svn_output>
Вы можете получить следующую ошибку:
abort: svn exited with status 256
Не сдавайся! Просто повторите ту же команду, и она продолжится с того места, где остановилась.
Если вы продолжаете сталкиваться с неприятностями, добавьте
--debug --traceback
в командной строке, чтобы получить более подробную информацию о том, что пошло не так.