我在Debian下使用svn,我通常使用某个用户提交我的网络文件,这与www-data不同。 我的提交过程没问题,但我想写一个post-commit钩子,它能够执行svn更新AS www-data到svn存储库的另一个工作副本,用于测试代码的实时更新。
我正在尝试以这种方式编写post-commit钩子: sudo -u www-data / usr / bin / svn update
不幸的是,提交过程完成后我的工作副本没有更新。但是当我尝试在CLI中执行前一个sudo语句时,语句成功并且正确更新了工作副本。你有一些线索吗?
我已经以这样的方式配置/ etc / sudoers,无需键入用户密码来执行sudo。
答案 0 :(得分:0)
svn up
使用.
作为目标,我无法回忆起钩子进程的当前目录(如果存在),但我想,这不是你的LIVE-WC,所以更好的方法是/usr/bin/svn update /PATH/TO/LIVE
1>&2
添加到尾随部分命令)答案 1 :(得分:0)
解决。
问题在于我在/ etc / sudoers中配置我的用户以访问/ usr / bin / svn作为www-data。我使用的语法完全错误。
现在我有一个名为working_copy的组,其中包含我的提交用户和www-data。在/ etc / sudoers中我有这一行:
%working_copy ALL=(www-data:working_copy) NOPASSWD: /usr/bin/svn
前提是我的提交用户可以在没有密码的情况下执行sudo。
无论如何,谢谢你@LazyBadger!