В работе у нас есть большой репозиторий Perforce (около 40 тыс. Списков изменений, общий размер хранилища ~ 145 ГБ).В целом мы довольны Perforce с некоторыми незначительными нареканиями, но мы планируем перейти к более распределенной модели разработки и, как следствие, также хотели бы перейти к более распределенной системе контроля версий.
До сих пор я смотрел на обычных подозреваемых (git, mercurial и потенциально bazaar, поскольку у меня есть хороший опыт работы с ним), но наша основная проблема в настоящее время состоит в том, чтобы получить историю версий из Perforce и импортировать в различные DVCS, чтобы мы не теряем историю. Мы также предпочли бы, чтобы сервер Perforce не зависал, если нам совершенно не нужно его хранить - мой опыт с такого рода миграцией показывает, что через некоторое время никто не смотрит на старое репо, поэтому вы потеряете историю туда.
Поскольку в репозитории есть несколько проектов, идея состоит в том, чтобы разделить его на несколько проектов DVCS, когда мы экспортируем историю, поскольку не всем нужно иметь возможность видеть каждую часть истории. Однако наш самый большой проект по-прежнему содержит около 2/3 внесенных изменений и также занимает около 2/3 хранилища. У него также самое большое количество веток - вероятно, около 30.
До сих пор я пробовал следующее - все работает на Windows, поскольку мы работаем только с Windows:
] hg convert
расширение. Похоже, что это очень хорошо работает для основной ветки проекта, который я конвертирую, но попытка преобразовать ветки Perforce в именованные ветки Mercurial с использованием карты ветвлений по-прежнему приводит к плоскому импорту с каждой проверкой в ветке по умолчанию.Возможно, это потому, что я неправильно настроил карту ветвей, но hg help convert
предполагает, что вы можете превратить репозиторий Perforce в «плоскую» структуру без ветвей с помощью этого импортера, что на самом деле недостаточно. для нашего использования. Итак, у меня следующие вопросы: