Если я вас правильно понимаю, пропущенная информация состоит в том, что вы можете изменить путь push-сообщения по умолчанию после создания клона. Когда вы запускаете
$ hg clone http://hg.server/repos/skeleton client-a
, чтобы получить клон client-a
из репо skeleton
, затем Mercurial создает client-a/.hg/hgrc
с
[paths]
default = http://hg.server/repos/skeleton
Так что hg push
теперь будет отправлять наборы изменений в этот репозиторий. Вместо этого вы должны создать новый клон на сервере:
$ hg clone skeleton client-a
и затем сделайте клон этого на своей машине:
$ hg clone http://hg.server/repos/client-a
Изменения в коде скелета больше не будут автоматически распространяться на репо skeleton
на сервере.
Важным недостатком этого является то, что все ваши клиентские репозитории будут «совместимы». Это означает, что вы можете сделать это случайно:
$ cd client-a
$ hg pull http://hg.server/repos/client-b
Это работает, поскольку client-a
и client-b
имеют общего предка в хранилище skeleton
. По этой причине я просто скопирую файлы скелета и заново добавлю их в каждый клиентский репозиторий:
$ unzip skeleton.zip
$ rm skeleton.zip
$ hg add
$ hg commit -m "Initialized repository for client-a"
Поскольку дата и сообщение о фиксации будут отличаться для каждого клиента, репозитории станут несвязанными , а hg push
и hg pull
будут с ошибками, если вы попытаетесь смешать наборы изменений из разных клиентов.