我的托pipe服务提供商启用了可信任path执行(Grsec),所以我所有的Subversion挂钩(例如post-commit)都停止工作。 任何尝试提交的东西都以警告结束:
提交后挂钩失败(退出代码255),没有输出。
我检查过,可以使用以下语法手动运行脚本:
bash post-commit [path] [REV]
但不是:
./post-commit [PATH] [REV]
我认为Subversion使用最后一个,导致问题。 那么是否有可能改变颠覆处理钩子的方式?
钩子执行方法在Subversion中是硬编码的,如果你想改变它,你必须修补源代码并重新构build它。 相关代码可以在源代码分发版的subversion / libsvn_repos / repos。{c,h}中find。
顺便说一下,钩子目前正在执行完整的path(如在/path/to/your/repo/hooks/post-commit ),而不是与cd /path/to/your/repo && ./post-commit 。