Мой хостинг-провайдер включил Trusted Path Execution (Grsec), поэтому все мои перехватчики подрывной деятельности (например, после фиксации) перестали работать. Любая попытка зафиксировать что-либо заканчивается предупреждением:
Ошибка после фиксации (код выхода 255) без вывода.
Я проверил, что скрипты можно запускать вручную, используя следующий синтаксис:
bash после фиксации [ПУТЬ] [REV]
но не по:
./post-commit [ПУТЬ] [REV]
Я думаю, что Subversion использует последний, что и вызывает проблему. Так можно ли изменить способ обработки хуков Subversion?
Метод выполнения хуков жестко запрограммирован в Subversion и вам нужно исправить исходный код и пересобрать его, если вы хотите это изменить. Соответствующий код можно найти в subversion / libsvn_repos / repos. {c, h} в исходном дистрибутиве.
Кстати, хуки в настоящее время выполняются по своему полному пути (как в /path/to/your/repo/hooks/post-commit
) а не с cd /path/to/your/repo && ./post-commit
.