Как совместить два проекта в Mercurial?

У меня есть два отдельных ртутных репозитория. На данный момент имеет смысл, что они «стали одним целым», потому что я хочу работать над двумя проектами одновременно.

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

  1. Как мне объединить два проекта?
  2. Это хорошая идея, или я должен держать их отдельно?

Кажется, я должен иметь возможность перемещаться из одного репозитория в другой ... Может, это действительно просто?

Ответов (3)

Решение

Я смог объединить два моих репозитория таким образом:

  1. Используйте hg clone first_repositoryдля клонирования одного из репозиториев.
  2. Используйте hg pull -f other_repositoryдля извлечения кода из другого репозитория.

-f (Сила) флаг на тянуть является ключевым - это говорит игнорировать тот факт , что два хранилища, а не из того же источника.

Вот документация по этой функции.

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

О вашем редактировании: перемещение из одного репозитория в другой. Вы всегда можете использовать transplantкоманду. Хотя все это на самом деле является отступлением от вашего желания объединить их, поэтому вы можете чувствовать себя некомфортно, используя мои предложения. Тогда вы можете использовать расширение леса или что-то в этом роде.

hg transplant -s REPOSITORY lower_rev:high_rev

hg начал иметь субрепо с 1.3 (2009-07-01). Ранние версии были неполными и шаткими, но теперь они вполне пригодны для использования.