linux下通过yum安装svn及钩子配置
svn搭建及配置
1.安装svn (一般centos自带svn)
yum -y install subversion
2.配置,建立版本库svn目录
mkdir /data/svn svnserve -d -r /data/svn #启动 svn服务
3.建立版本库
创建一个新的svn项目
svnadmin create /data/svn/ifengweb
配置改项目,允许用户cleey访问
cd /data/svn/ifengweb/conf/ vim svnserve.conf anon-access=none auth-access=write password-db=passwd #用户文件名
注:修改的文件前面不能有空格,否则启动svn server出错
vim passwd [users] #<用户1> = <密码1> cleey=easypwd
4.客户端连接
svn co svn://server_ip/ifengweb 用户:cleey 密码:easypwd
提示输入root密码,直接回车,然后输入上面用户密码
---------------------------------------------------------------------------
实现svn 和 web 同步,及自动更新
1.建立你的web目录 /var/www/html/
2.checkout 一份svn,将svn代码下载的web目录下
svn co svn://localhost/ifengweb /var/www/html/ifengweb
这样 /var/www/html/ifengweb 代码就有了
3.建立同步脚本
cd /data/svn/ifengweb/hooks/ cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
ifengwebpath='/var/www/html/ifengweb' svn update $ifengwebpath --username cleey --password esaypwd --no-auth-cache
增加脚本执行权限
chmod +x post-commit
svn服务的关闭:
killall svnserve
svn开启:
svnserve -d -r /data/svn
SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理
下面是测试
svn使用提交
1.客户端到目录下添加一个文件
cd ifengweb vim readme.rd hello, test post-commit
2.添加并提交到版本库
svn add readme.rd svn commit -m 'init'
3.在svn服务器上可以看到提交成功了的文件
如果有钩子,如上面的配置可以看到web目录下也自动更新了