У меня есть папка репозитория (данных) вне корня сайта, содержащая различные репозитории и обслуживаемая через hgwebdir на отдельном домене (hg.mywebsite.com).
Однако хранилище моего сайта я храню в каталоге httpdocs основного домена. Я тестирую в своей локальной среде, а затем отправляю свои изменения на сервер и публикую их.
Для достижения этого у меня есть в моем hgweb.config:
private/mywebsite = ../../../httpdocs
И это в hgrc этого репозитория:
[hooks]
changegroup.update = hg update
Эта ловушка будет обновлять рабочий каталог до подсказки при каждом внесении изменений. Конечно, я также добавил в конфигурацию Apache правило, игнорирующее каталог .hg, и на поддомене, на котором работает hg, - правило, требующее авторизации для доступа к личным / путям.
Альтернативой может быть размещение хранилища вместе с остальными, а затем «hg archive» в каталог httpdocs. Немного более безопасно, немного медленнее, и я бы сказал, что для удобства это 50-50.
p.s. Также неплохо было бы добавить ловушку, запрещающую создание удаленных веток, если люди, которые могут нажимать -f, могут получить доступ к вашим репозиториям.