Mercurial Условные% включают?
Я хотел бы, чтобы родительские каталоги проектов включали файл hgrc, от которого наследуется репозиторий в этой папке, например
~/work/
~/work/hgrc
~/work/project1/
~/work/project2/
~/personal/hgrc
~/personal/project1
~/personal/project2
~/personal/project3
Любой проект в работе должен наследоваться от work/hgrc
и любой в личку должен наследовать от personal/hgrc
, Я думал о добавлении сценария ~/.hgrc
что на клоне будет искать любые файлы hgrc в родительских каталогах и %include
их, если они существуют, но у них есть уродство, что если я добавлю hgrc под ним после того, как я клонирую его, он не будет включен. Только 5% времени рассмотрения, но все же...
2 ответа
Как насчет положить:
%include ../hgrc
внутри каждого репо.hg/hgrc? Вы даже можете сделать это автоматически, но поместите это в свою систему /etc/mercurial/hgrc
:
[hooks]
post-clone = echo '%include ../hgrc' >> .hg/hgrc
Я не проверял этот крючок.:)
Следуя предложению @Ry4an, вот пример, который работает для меня. Я добавляю это к моему ~/.hgrc
файл, так что он работает везде.
[hooks]
# This hook adds "%include ../.hgrc" to .hg/hgrc if the .hgrc file exists in
# the top level. This allows one to store a set of paths for example.
# See
update = if [ -e .hgrc ] && touch .hg/hgrc \
&& ! grep -q '%include \.\./\.hgrc' .hg/hgrc; then \
echo '%include ../.hgrc' >> .hg/hgrc; \
fi
Этот хук добавляет строку %include ../.hgrc
к .hg/hgrc
файл, если файл .hgrc
существует на верхнем уровне репо. Обратите внимание, что с помощью update
крюк, мы обходим вопрос с post-clone
Клон ловушка того, чтобы попытаться выяснить имя каталога целевого клона из переменных среды.