Mercurial и Clearcase, перемещая существующее хранилище в другое представление - PullRequest
2 голосов
/ 01 февраля 2012

В течение некоторого времени мы успешно исчерпали репозиторий Mercurial из представления снимка CC.У нас есть исходное репо в представлении, и базовое репо команды является клоном из этого.Это удерживает слой разделения, чтобы упростить управление check-checkins в CC.

Теперь по внутренним причинам, в которых я работаю, нам нужно перейти к новому представлению.Как мы можем это сделать?В компании есть другие команды, проверяющие файлы непосредственно в CC (надеюсь, мы скоро их убедим), так что это следует учитывать.

Как я могу наложить наш существующий репо на новый вид (итогда я могу перебазировать базовый репо команды без проблем)?

1 Ответ

1 голос
/ 01 февраля 2012

Проблема заключается в том, что между текущим репозиторием Mercurial и новым представлением моментального снимка может существовать разница (особенно с другой спецификацией конфигурации).

Поскольку ОП упоминает в комментариях, что спецификация конфигурации нового представления не изменится, он предлагает более простой метод, чем приведенный ниже:

  • Загрузка нового содержимого для просмотра снимков
  • удалить все свои файлы с диска ( не из ClearCase)
  • скопировать каталог .hg исходного репозитория Mercurial в новом (пустом) представлении
  • обновить рабочее дерево указанного репозитория Mercurial (все файлы вернулись на прежнее место, но были обнаружены ClearCase как угнанные)
  • cleartool update -overwrite для принудительного удаления ClearCase этих файлов версиями из ClearCase. (см. человек cleartool update)

Затем Mercurial будет обнаруживать любые изменения между файлами, восстановленными ClearCase, и файлами, управляемыми в репо.


(Оригинальный ответ)

Я бы:

  • создать ветку, предназначенную для этой миграции в Mercurial,
  • сравнить его содержимое с представлением моментального снимка (без добавления репозитория Mercurial)
  • импорт и устранение различий от представления ClearCase до репозитория Mercurial
  • и , затем , когда содержимое будет идентичным, клонируйте репозиторий Mercurial непосредственно в представлении снимка.

Остальное будет примерно:

  • извлечение этой выделенной ветви миграции в базовый репозиторий команды
  • слияние этой ветви с основной веткой разработки в базовом репо команды
...