这里我将讲解如何利用SVN来管理网站的发布,这次环境仍然是Ubuntu,预装了SVN和Nginx,SVN服务已经启动,版本库已经建立并完成项目提交。

假设版本库路径为/var/lib/svn/project1,web发布路径为/srv/webroot/project1。

当我们在客户端将Web项目代码提交(commit)到project1代码库中时,如何自动更新/srv/webroot/project1的Web发布路径的内容呢?

首先,我们需要checkout一次,把库的文件checkout到Web路径下:

svn co svn://localhost/project1 --username bob --password 123456

其次,修改/var/lib/svn/project1/hooks/post-commit,如果没有则建立一个:

#!/bin/sh
export LANG=en_US.UTF-8
svn up /srv/webroot/project1 --username bob --password 123456 --no-auth-cache

注意--no-auth-cache,否则会提示验证信息ATTENTION! Your password for authentication realm导致执行失败。

最后,为post-commit文件增加执行属性:

chmod +x post-commit

完成上述步骤后,试试从客户端提交代码到版本库中,看看Web内容是不是也改变了?

标签: nginx, ubuntu, svn

仅有一条评论

  1. 我发现我设置以后...还是255..找了很多资料..还是255

添加新评论