2016-05-23 9 views
0

Я уже некоторое время занимаюсь этим, и я не могу заставить его работать.Как настроить меркуриальные крючки в Kallithea

Согласно Киллитеа документации:

To add another custom hook simply fill in the first textbox with <name>.<hook_type> and the second with the hook path. Example hooks can be found in kallithea.lib.hooks.

Так что моя первая попытка была, чтобы добавить новый метод hooks.py. В основном, чтобы проверить крючок, я хочу, чтобы ВСЕ не нажимал на репо. Так что я буду использовать pretxnchangegroup и вернуть ноны 0 нон ложного значения в Mercurial документация говорится

A hook that executes successfully must exit with a status of zero if external, or return boolean “false” if in-process. Failure is indicated with a non-zero exit status from an external hook, or an in-process hook returning boolean “true”. If an in-process hook raises an exception, the hook is considered to have failed.

Так что я сделал это:

def myhook(ui, repo, **kwargs): return True

И я добавил крюк в GUI в Каллифеях варианты крюка:

pretxnchangegroup <=> python:kallithea.lib.hooks.myhook

Это Howeve г не удалось, потому что по какой-то причине метод не может быть найден

abort: pretxnchangegroup hook is invalid ("kallithea.lib.hooks.myhook" is not defined)

Так что я попытался положить его в другой файл (в той же папке «Lib», где hooks.py есть). Создал файл с именем canpush.py и добавил туда тот же метод. Я изменил путь крюк, чтобы предназначаться новое имя файла:

pretxnchangegroup <=> python:kallithea.lib.hooks.myhook

Однако крючок не вызывает, и я могу нажать на мой репозиторий без проблем. Я планирую изменить реальную реализацию крюка в будущем, нажатие будет разрешено, но сначала мне нужно получить какой-либо функциональный крючок с Kallithea.

Что я здесь делаю неправильно?

Кроме того, если кто-то знает, как использовать настройки hgrc из отдельного репо в пределах Kallithea, пример будет замечательным. Оригинальный вопрос here.

ответ

0

Отвечая на мой собственный вопрос, но просто чтобы сохранить его как ссылку.

Как оказалось, установка была прекрасной, но в отчаянии я решил перезапустить демон kallithea (чего нигде в документации), в основном думая, «что может пойти не так», - и это сделало трюк!

Я думаю, в процессе запуска вещей компилируются/кэшируется и метода определения крюка найдена и функциональные (Если кто-то имеет лучшее объяснение того, что происходит при перезагрузке Kallithéa пожалуйста, поделитесь)

Так голым в виду , после каждого перехода к файлам крючков файлы kallithea daemon должны быть перезапущены, чтобы крючки имели какой-либо эффект.

sudo service kallithea restart