Mercurial не допускает вложенные репозитории, но для них есть хотя бы одна причина:
Представьте, что вы работаете в проекте: / MyProject. В эту папку вы помещаете все: код, документацию, тесты и т. Д.
Вы хотите сделать резервную копию своей работы, потому что это очень важно, поэтому вы создаете хранилище для / MyProject. Затем сверхурочно вы используете пакеты, чтобы сохранить эволюцию / MyProject и сохранить их на флэш-памяти USB, чтобы вы могли восстановить все на случай поломки жесткого диска.
Помните, что / MyProject содержит все. И среди всего этого есть основной код и некоторые вспомогательные проекты. Вы также хотите отслеживать ход выполнения вспомогательного проекта в / MyProject / AuxiliaryProject, поэтому вы используете Mercurial для отслеживания его эволюции.
Также вы хотите иметь отдельный репозиторий для основного кода: / MyProject / Main
В этой ситуации вам нужны вложенные репозитории: один большой для возможности резервного копирования всего, используя пакеты и дочерние репозитории для управления каждым подпроектом.
Я думаю, что Mercurial должен предоставить пользователю несколько вариантов при инициализации репозитория. Например:
- игнорировать вложенные репозитории
- включать вложенные репозитории, но игнорируя папки .Hg (т. е. действовать, как если бы не было вложенных репозиториев, но не игнорировать информацию, содержащуюся во вложенных репозиториях).
- включать вложенные репозитории, а также включать папки .Hg (имеет смысл для целей резервного копирования)
--------- Редактировать:
Подпозитории - это функция, которая находится в стадии разработки:
https://www.mercurial -scm.org / вики / subrepos
Кроме того, существует расширение под названием «лес», которое в будущем может устареть:
https://www.mercurial -scm.org / ForestExtension