我试图让Subversion在提交时自动部署当前的工作副本。Subversion失败后提交挂钩?
例如,如果某人签出'public_html'回购并提交更改,我需要SVN在运行svn的服务器上自动运行'svn update/path/to/public_html /'。
我已经成立了一个post-commit钩子调用:
在/ usr/bin中/ SVN更新/路径/到/的public_html/
我已经确保提交后钩子是可执行的,如果我通过SSH手动运行脚本,它会正常运行并更新/ path/to/public_html/dir,因此我们知道提交后脚本正常工作。
我现在遇到的问题是,每当我承诺,我得到这个错误:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/public_html': 200 OK (http://ourdomain.com)
事情是,SVN躺在通过它的牙齿:提交其实没有失败 - 如果我手动更新dir(或手动运行提交后脚本)更新完成,并且更改将反映在服务器上。
那么,有谁知道为什么我的后提交挂钩失败?
我已经看过这篇文章的一些帖子,但似乎没有任何解决办法,除了“尝试运行后提交脚本手动”,我试过了,它工作正常..所以,提交脚本不是问题,它似乎是SVN本身的问题。
任何帮助将不胜感激!
这并不直接回答你的问题,所以我将它包含在评论中而不是答案中 - 我建议不要直接在svn存储库中运行你的公共http服务器内容。相反,您应该使用构建和部署脚本,将脚本和内容打包并将其移至发布位置。自动搭配提交声音特别可怕 - 如果有人检查代码错误或写入中的粗鲁错字会怎么样?你永远没有机会在他们上线之前测试这些变化。 – Ether 2010-08-04 22:09:48