Как объединить два проекта в Mercurial?

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

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

  • Как объединить два проекта?
  • Это хорошая идея, или я должен сохранить их отдельно?

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

Ответ 1

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

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

Флаг -f (force) при pull - это ключ - он говорит, чтобы игнорировать тот факт, что два репозитория не из одного источника.

Здесь документы для этой функции.

Ответ 2

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

Ответ 3

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

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

hg transplant -s REPOSITORY lower_rev:high_rev