У меня есть сценарий, который находится на верхнем уровне моей рабочей копии и хотел бы использовать его как крюк Mercurial. Если я использую абсолютный путь к крючку, тогда все в порядке, но я хочу относительный путь, чтобы все это можно было легко перемещать, использовать в других рабочих копиях, а другие разработчики могут скопировать hgrc как есть.Как использовать относительный путь к крюку Mercurial
/space/project/.hg/hgrc содержит
[hooks]
update = genid
genid скрипт в/пространства/проекта/genid
Крюк вызывается просто отлично, если я нахожусь в/пространстве/проект но если мой текущий каталог - это/space/project/src/tools, тогда «hg update» выдаст ошибку, поскольку невозможно найти крючок.
Что произойдет, если кто-то сделает «hg update null», тем самым освободив рабочий каталог? Когда вы попытались запустить любую команду 'hg', она попытается загрузить несуществующее расширение. Конечно, это все еще может быть проблемой с абсолютными путями, но гораздо вероятнее, если скрипт расширения находится в репо, над которым вы активно работаете. –
Ну не делай этого! Крюки пусты по умолчанию и должны быть проактивно добавлены, поэтому, если не будет никакой рабочей копии, тогда не добавляйте крючок. Это не будет проблемой для других разработчиков, работающих над проектом. –
@TimDelaney, который не имеет каких-либо катастрофических эффектов - запуск крюка будет просто терпеть неудачу, но фиксация все равно произойдет –