Могут ли Mercurial репозитории быть вложенными? - PullRequest
11 голосов
/ 31 августа 2010

Что произойдет, если в

уже есть хранилище Mercurial
/User/peter/development

и теперь я хочу добавить репозиторий для

/User/peter

потому что я тоже хочу версию .bashrc, .profile или, может быть, /User/peter/notes. Будет ли наличие хранилища над уже существующим хранилищем создавать конфликты для Mercurial?

Ответы [ 2 ]

10 голосов
/ 31 августа 2010

Все будет хорошо.

Кажется, что Mercurial достаточно умен, чтобы игнорировать подкаталоги, в которых уже есть репозитории.Вот разговор с ним:

$ mkdir outer
$ mkdir outer/inner
$ mkdir outer/sub
$ echo red >outer/red.txt
$ echo blue >outer/inner/blue.txt
$ echo green >outer/sub/green.txt
$ cd outer/inner/
$ hg init
$ hg add
adding blue.txt
$ hg commit -m "create inner"
$ cd ..
$ hg init
$ hg add
adding red.txt
adding sub/green.txt
$ hg commit -m "create outer"
$ hg status
A red.txt
A sub/green.txt
$ hg commit -m "create outer"

Как вы видите, когда я добавляю во внешний репозиторий, он игнорирует внутренний каталог.

Если вы хотите быть более уверенным, вы могли быдобавьте внутренний каталог в ваш .hgignore.

1 голос
/ 25 сентября 2010

Существует функция "subrepositories" , которая была добавлена ​​в Mercurial в версии 1.3 и поддерживается в 1.5, что позволяет некоторым командам hg рекурсивно воздействовать на вложенные хранилища.

...