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

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

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

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

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

15.08.2008 22:29:44
3 ОТВЕТА

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

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

hg transplant -s REPOSITORY lower_rev:high_rev
3
31.05.2017 11:31:30
РЕШЕНИЕ

Я смог объединить мои два хранилища следующим образом:

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

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

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

69
31.05.2017 11:30:36
Сохраняет ли это хеш-ключи коммитов из второго репо? (Я думаю, нет, но это может быть хорошо, пока вы не сделаете слияние.)
Macke 11.10.2009 19:53:59
Это работает, но вам нужно также запустить, hg mergeчтобы наконец все заработало
Factor Mystic 25.10.2009 16:18:47
@Marcus Lindblom: извлечение изменений никогда не изменит его хэш. Если вы посмотрите hg glogпосле этого, то увидите, что у вас есть две несвязанные линии наборов изменений. Первый набор изменений в каждой строке не имеет родителя, но это не проблема для Mercurial. После того, как вы потянете, вы захотите сделать по одному новому набору изменений для каждой строки, где вы hg mvвсе поместите в соответствующую подпапку, затем вы объедините строки и все готово.
Steve Losh 25.10.2009 18:45:54
Что делать, если два хранилища имеют общий для них код. Будет ли это автоматически обработано слиянием? а что касается слияния, мы можем сказать, что $ hg merge?
kamal 23.03.2011 16:07:42
для справки, вот документы для этого процесса mercurial.selenic.com/wiki/MergingUnrelatedRepositories
Gent 7.09.2012 21:10:37

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

7
31.05.2017 11:31:52
Я нашел подзадачи для боли работать с. Они работают, но вы должны перепрыгнуть через некоторые обручи, чтобы заставить их вести себя и могут быть источником многих головных болей, если вы не будете осторожны.
Pete Duncanson 18.10.2011 14:47:18
Стоит отметить, что суб-
jtpereyda 13.11.2013 01:09:20