我试图让 subversion 在提交时自动部署当前的工作副本。
例如,如果有人签出 'public_html' repo 然后提交更改,我需要 SVN 在运行 svn 的服务器上自动运行 'svn update /path/to/public_html/'。
我设置了一个提交后挂钩,它调用:
/usr/bin/svn 更新 /path/to/public_html/
我确保提交后挂钩是可执行的,如果我通过 SSH 手动运行脚本,它会正常运行并更新 /path/to/public_html/ 目录,因此我们知道提交后脚本工作正常。
我遇到的问题是,每当我提交时,我都会收到此错误:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/public_html': 200 OK (http://ourdomain.com)
事实是,SVN 是在说谎:提交实际上并没有失败——如果我手动更新目录(或手动运行提交后脚本),更新完成并且更改会反映在服务器上。
那么,有谁知道为什么我的提交后挂钩失败了?
我已经看过很多关于这个主题的帖子,但除了“尝试手动运行提交后脚本”之外似乎没有任何解决方案,我已经尝试过并且效果很好。所以提交后脚本不是t这个问题,似乎是SVN本身的问题。
任何帮助将不胜感激!!