Mercurial репо внутри репо

Можно ли создать ртутный репозиторий внутри существующего ртутного репозитория?

Идея состоит в том, чтобы обрабатывать подкаталоги репозитория как разные репозитории, как вы это делаете?

Я не говорю о подзадачах (по крайней мере, если я понял назначение подзадач...), но если это то, для чего существуют подзадачи, я ошибся и постараюсь сделать это правильно:)

Спасибо ~ Аки

РЕДАКТИРОВАТЬ: Чтобы быть более ясным, я хотел бы знать, что происходит, практики и последствия наличия хранилища внутри другого, без указания модулей / подпунктов. Другими словами: что произойдет, если я просто сделаю:

hg init globalRepo
hg init globalRepo/subRepo

и использовать эти два хранилища как есть?

3 ответа

Решение

Это работает хорошо. Задолго до того, как поддержка subrepo была добавлена ​​в Mercurial 1.3, многие люди хранили свои домашние каталоги в репозитории Mercurial для отслеживания своих .bashrc файлы и тому подобное. Тогда в их домашнем каталоге у них будет много клонов других репо.

Всякий раз, когда вы вызываете Mercurial (без -R вариант) он ищет в текущем каталоге .hg каталог, а затем просто продолжает идти вверх по каталогам, пока не найдет один. Поэтому, если вы находитесь в репо, которое находится в репо, ваши команды всегда будут действовать на самый внутренний репо, в котором вы находитесь.

Предостережение заключается в том, что вы хотите убедиться, что во внешнее хранилище не добавляются файлы, которые попадают во внутреннее хранилище. Тогда у вас будет два репозитория, обновляющих одни и те же файлы.

Как вы можете видеть в этом вопросе, вы можете сделать такой hg init даже если он обычно зарезервирован для определения subRepo (это не то, что вам нужно).

Обычно он должен работать как два независимых репо, но я бы посоветовал добавить hgignore править в globalRepo чтобы игнорировать subRepo содержание в целом.

Вот несколько документов на вложенные репозитории.

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