Преобразование из Mercurial в Subversion

Из-за отсутствия поддержки Mercurial в нескольких инструментах и ​​административного подавления стало необходимым преобразовать несколько пробных репозиториев Mercurial в Subversion, чтобы соответствовать стандарту компании.

Существуют ли какие-либо инструменты или предложения, как этого добиться без потери истории изменений и тому подобного?

3 ответа

Решение

Расширение convert, которое поставляется с mercurial, может использовать mercurial в качестве src и subversion в качестве dest.

hg convert --dest-type svn hgreponame svnreponame

Убедитесь, что он включен в вашем файле.hgrc.

Если вы хотите потихоньку использовать mercurial, то hgsubversion позволит вам выполнить двунаправленную синхронизацию.

Ответ Ry4an выше делает трюк точно; несколько более подробных инструкций для тех, кто (как и я), у кого возникли проблемы:

  1. Сделайте себе одолжение и не пытайтесь сделать это на Windows. Вам придется установить очень специфическую версию SVN, и даже в этом случае некоторые вещи не будут работать с различными сообщениями об ошибках. Мое решение состояло в том, чтобы загрузить чистый экземпляр AWS, получить на него последние версии mercurial и svn, клонировать репозиторий HG и запустить там конвертирование.

  2. Добавьте это в ваш файл.hgrc, чтобы включить convert расширение:

    [extensions]
    hgext.convert=
    
  3. Запустите эту команду:

    hg convert --dest-type svn <hg_directory> <directory_for_svn_output>
    
  4. Вы можете получить следующую ошибку:

    abort: svn exited with status 256
    

    Не сдавайся! Просто повторите ту же команду, и она продолжится с того места, где остановилась.

    Если вы продолжаете сталкиваться с неприятностями, добавьте --debug --traceback в командной строке, чтобы получить более подробную информацию о том, что пошло не так.

Портной должен иметь возможность делать то, что вы хотите.

Другие вопросы по тегам