我尝试在每次提交时进行提交后更新我的网站。在/ hooks / post-commit
中我做了如下
/svnUupdat/cProgrammeThatUpdate >> /log/test.log
好的,如果我试试
env - ./post-commit
它可以工作,网站得到更新到最后一个版本(并且日志中有一些东西)
但如果我提交后提交不被调用?? (日志中没有任何内容,网站未更新)
请注意,如果我只提交后提交
/bin/echo "post-commit run" >> /log/test.log
如果提交某些内容......它有效..日志中有一些内容..为什么不调用我的c程序呢?
修改 我尝试了其他的东西,而不是调用c程序
/usr/bin/svn update /var/www/vhost/xx.com/site1/ >> /var/log/svn/example.log
在日志中我有Skipped / var / www ...
为什么会跳过?如果我在终端中启动svn更新,它将工作目录获取最后一次修订
感谢
答案 0 :(得分:2)
注意当SVN调用钩子文件时,它就像没有设置环境变量一样。因此,您必须在挂钩文件的开头手动设置PATH变量。
答案 1 :(得分:1)
'skipped'消息表明Subversion无法更新目录,因为它不是工作副本。但是,这与您可以手动更新目录的声明冲突。也许你的路上某处有拼写错误?
您还应该知道提交后脚本是作为提交的用户执行的。这可能与您使用终端时的用户相同,也可能不同。您应该检查提交用户是否具有执行提交后脚本的适当权限,以及该用户是否有权执行您的脚本所做的任何操作。