Зеркальное копирование Subversion репозитория в Mercurial с доступом коммитов - PullRequest
1 голос
/ 04 июня 2010

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

Я встречал такие статьи, как SubversionToMercurialSync , которые разрешают доступ только для чтения для зеркала Mercurial.

Мы хотим иметь возможность протестировать все функции Mercurial, используя нашу существующую кодовую базу, чтобы команда могла продолжить разработку. Такие инструменты, как svn2hg , позволят нам протестировать локальные функции ветвления Mercurial, но мы также хотим иметь возможность тестировать выталкивание, извлечение, объединение и т. Д. Из других удаленных репозиториев. Для этого нам понадобится удаленное зеркало Mercurial с доступом к коммиту.

Кто-нибудь пробовал этот рабочий процесс? Если да, то какие инструменты / методы я должен использовать, чтобы сделать это возможным?

1 Ответ

3 голосов
/ 04 июня 2010

Если вы просто пробуете это, просто используйте их параллельно. Синхронизируйте их вручную при необходимости. Вы можете немного ознакомиться с ним в небольшом масштабе с локальным (не клонированным) репозиторием hg, но вы не освоитесь с hg, пока не поработаете над ним в команде. Я бы не рекомендовал хранить эту раздвоенную личность очень долго, так как история будет изобиловать бесполезными сообщениями о коммитах, такими как "большая синхронизация между hg, svn" . Я бы также предложил разработку только на ветке по умолчанию в двойной песочнице. Если вы хотите поэкспериментировать с чем-то в именованной ветви, попробуйте это в песочнице hg-only.

Начните с , конвертируя svn репо в hg

Используйте «песочницы» разработки, которые содержат подкаталоги .hg и .svn. Вероятно, вы можете просто скопировать каталог .hg из клонированного репозитория.

В идеале разработчики, участвующие в испытании, должны синхронизировать оба vcs, но ...

Чтобы вручную синхронизировать svn с hg:

svn update
hg addremove
hg commit
hg push

Чтобы вручную выполнить синхронизацию из hg в svn:

hg pull -u
(svn add newfiles)
(svn remove gonefiles)
svn commit

Выберите новую функцию, которая может занять некоторое время (от нескольких дней до пары недель), затем начните делать это в репозитории hg, конвертированном из вашей базы SVN. Это даст вам представление о мощных ветвлениях и тегах, которых нет в SVN.

Я думаю, моя команда сделала это довольно хорошо. Мы устанавливаем дату для переключения (один месяц). В течение этого времени некоторые члены команды возились с hg и получили определенный уровень мастерства. Это сыграло важную роль в помощи сверстников. Мы пообедали и учились в нулевой день перехода на ртутный. Мы все принесли наши ноутбуки и играли в одном репо, меняли файлы, фиксировали, толкали, тянули. Люди были готовы экспериментировать, потому что это были бесполезные данные. Начните репо с одного текстового файла, расскажите людям, как клонировать / подтолкнуть / вытащить репо, а затем попросите их что-то изменить (не указывайте, что). Пусть каждый работает в своем темпе. Они будут создавать новые файлы, изменять файлы, создавать конфликты, разрешать их ....

Этот подход требует, чтобы у вас был хотя бы один человек, который достаточно хорошо знаком с ветвлением и объединением, чтобы выступать в роли посредника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...