Рекомендуемое использование Perfarce (или другого?) Для оценки рабочего процесса Mercurial

[ПРИМЕЧАНИЕ: "Perfarce" - это название расширения Mercurial для интеграции с Perforce: https://www.mercurial-scm.org/wiki/PerfarceExtension]

Мы начинаем оценивать Mercurial для проекта, который в данный момент хранится в Perforce. Вместо того, чтобы отказываться от депо P4 и вносить все изменения в Hg, мы хотели бы в первую очередь работать в Hg и периодически вносить изменения в P4. Есть вероятность того, что некоторые разработчики продолжат работать в Perforce во время этой оценки, но кроме этого мы хотим оценить рабочие процессы, которые делает возможной DVCS, например, переход от одного репозитория разработчика к другому.

Я пробовал расширение Perfarce, и это выглядит как отличный способ использовать Hg в качестве расширенного клиента P4 с более детальной локальной историей. Однако, когда я использую Perfarce для проверки одного и того же дерева на двух разных машинах, я получаю две истории Mercurial с разными идентификаторами наборов изменений. Похоже, что единственный способ поделиться изменениями таким образом - пройти через депо P4.

Существуют ли другие варианты синхронизации репозиториев разработчиков с P4, не делая их несовместимыми на уровне Mercurial?

1 ответ

Решение

Честно говоря - это звучит как ситуация, которая может стать причиной кошмаров. Вот как я бы подошел к этому, чтобы минимизировать некоторые риски и боль:

  • Настройте рабочие пространства Perforce на " allwrite" таким образом, чтобы Perforce больше не мешал Hg.
  • Используйте одно рабочее пространство P4, чтобы синхронизировать изменения от хранилища до ртутного хранилища (и от hg обратно до хранилища), а затем выполняйте свою работу с ним. Рассматривайте это как главный репозиторий на GitHub или Bitbucket.
  • Используя синхронизацию one-true-workspace, вы переходите обратно в Perforce, используя функцию "согласовать автономную работу" в P4V, и внимательно просмотрите списки изменений (вы не хотите отправлять каталог.hg).

С некоторой дисциплиной вы должны быть в состоянии избежать некоторых ловушек, хотя это, конечно, не идеальный путь вперед. Я не думаю, что есть какая-то одна пуля, которая позволит вам без проблем сохранять свои изменения должным образом отраженными во всех различных репозиториях и позволить всем просто работать как обычно.

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