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 Клон ловушка того, чтобы попытаться выяснить имя каталога целевого клона из переменных среды.

Другие вопросы по тегам