2016-04-21 3 views
1

Мне нужно объединить все новые таблицы изменений ртутного репозитория (позволяет называть его A) в подкаталог другого ртутного хранилища (позволяет называть его B) на регулярной основе. Это означает, что просто копирование всех файлов не является вариантом, так как файлы в B также могут быть изменены и должно быть выполнено правильное слияние.Объединить ртутный репозиторий в подкаталог другого

Единственное, что я нашел далеко, это http://hgtip.com/tips/advanced/2009-11-17-combining-repositories/, что связано с объединением репозиториев и не слиянием снова и снова, включая изменения.

Любые идеи? Заранее спасибо.

ответ

2

Это звучит как случай, когда вы хотите использовать в sub-repositories: в том числе хранилища А как суб-репозиторий в родительском хранилище B.

Давайте предположим, что все А находится в пути B/A. Таким образом, у вас будет локально ваш репозиторий B и внутри него другой репозиторий. Затем вы можете перейти в репозиторий A, вытащить из другого репозитория A 'и выполнить слияние, как вы считаете нужным. Затем вернитесь на родительский уровень, в репозиторий B. Обновите отслеживаемый статус A и все. Если вы хотите внести локальные изменения, которые влияют на оба, A и B, используйте рекурсивный hg commit --subrepos. См. https://www.mercurial-scm.org/wiki/Subrepository для более подробного описания.

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

Возможно похожие функции, такие как Guest Repositories, HG Nested или Forest Расширения лучше подходят для вашего фактического использования.

+0

Я только что экспериментировал с функцией subrepo. Оказывается, когда я изменяю файл в B/A, он хочет нажать на исходный A вместо B. Но я хочу только импортировать изменения в свое B-репо, а не нажимать на A. Я что-то делаю неправильно или делает это не работать с subrepos? – loonytune