Может один hg repo живой в другом hg repo в моей локальной файловой системе?
Я раскрываю битоприемник Wiki для 'песочницы', и я хочу знать, должно ли это быть помещено в repos/sandbox/wiki
или repos/sandbox-wiki
.
Первый должен хорошо сделать?
Править: Посмотрите подрепозиторий.
Да и нет. Зависит от того, чем вы хотите заниматься. Вы можете создать репозиторий «песочница / вики», но файлы во внутренних репозиториях не будут фиксироваться во внешнем репозитории «песочница» (@Jason прав). Если не хочешь, не беда.
Попробуйте явно добавить файлы из репозиториев вики в песочнице, и вы получите сообщение ниже. Если вы просто добавите путь к некоторому каталогу, содержащему внутреннее репо, файлы будут проигнорированы.
Из директории корня Sandox:
hg add wiki/myfile
abort: path 'wiki/myfile' is inside repo 'wiki'
Короткий ответ - да, но я не могу представить, зачем вам это нужно.
В вашем примере, я думаю, вам следует использовать:
repos/sandbox-wiki
[править] Дополнительно:
Yo Dowg, I herd you like repositories.
So we put a repo in your repo so you can version while you version
: -)
Вам нужно создать файл Это, вероятно, вызовет у пользователей больше путаницы, чем того стоит. .hgignore
в песочнице, чтобы исключить вики, потому что mercurial предполагает, что он отвечает за всех потомков.
Mercurial не разрешает использование вложенных репозиториев, но для этого есть по крайней мере одна причина:
Представьте, что вы работаете в проекте: / MyProject. В эту папку вы помещаете все: код, документацию, тесты и т. Д.
Вы хотите сделать резервную копию своей работы, потому что это очень важно, поэтому вы создаете репозиторий для / MyProject. Затем вы сверхурочно используете пакеты для сохранения эволюции / MyProject и резервного копирования их на флэш-память USB, чтобы вы могли восстановить все на случай, если ваш жесткий диск сломается.
Помните, что / MyProject содержит все. И среди всего этого есть основной код и несколько вспомогательных проектов. Вы также хотите отслеживать прогресс вспомогательного проекта, который находится в / MyProject / AUXProject, поэтому вы используете Mercurial для отслеживания его развития.
Кроме того, вы хотите иметь отдельный репозиторий для основного кода: / MyProject / Main
В этой ситуации вам нужны вложенные репозитории: один большой для возможности резервного копирования всего с помощью пакетов и дочерних репозиториев для управления каждый подпроект.
Я думаю, что Mercurial должен предоставить пользователю несколько вариантов при инициализации репозитория. Например: - игнорировать вложенные репозитории - включать вложенные репозитории, но игнорировать папки .Hg (т.е. действовать так, как если бы вложенных репозиториев не было, но не игнорировать информацию, содержащуюся во вложенных репозиториях).- включить вложенные репозитории, а также папки .Hg (имеет смысл для целей резервного копирования)
--------- Изменить: Подрепозитории - это функция, которая находится в стадии разработки: https://www.mercurial-scm.org/wiki/subrepos
Кроме того, существует расширение под названием «лес», которое в будущем может стать устаревшим: https://www.mercurial-scm.org/ForestExtension