Linux自整理SVN搭建及与站点根目录实现钩子同步
Posted 51CTO技术栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自整理SVN搭建及与站点根目录实现钩子同步相关的知识,希望对你有一定的参考价值。
▼ 当使用了svn版本控制系统后每个目录下都会有一个.svn目录存在,开发完当交付产品或者上传到服务器时一般要把这些目录删除。
find . -type d -name ".svn"|xargs rm -rf
▼开始搭建SVN服务
1、mkdir /www/svndata //建立版本库目录
svnserve -d -r /www/svndata/
2、svnadmin create /www/svndata/site //创建一个新的Subversion项目
3、修改配置
cd /www/svndata/site/conf/
配置允许用户访问
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
注:修改的文件前面不能有空格,否则启动svn server出错
配置密码文件
vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
appteam = app123
manager = manager
配置登录认证文件
vi authz
[groups]
appm = appteam,manager
[/]
@appm = rw
* = r
或者直接最后添加
[/]
appteam = rw
4、测试》》》
[root@centos6 ~]# svn co svn://localhost/site
取出版本 0。
5、实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
1)设置WEB服务器根目录为/usr/local/nginx/html/site(我的默认nginx目录)
2)checkout一份SVN
svn co svn://localhost/site /usr/local/nginx/html/site
修改权限为WEB用户
chown -R www:www /usr/local/nginx/html/site
3)建立同步脚本
cd /www/svndata/kaifa/hooks/
hooks(钩子)文件说明:
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
复制代码
REPOS="$1"
REV="$2"
BASEPATH=/var/www/html/kaifa
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username appteam --password app123 --no-auth-cache
echo `date`,`whoami`,$REPOS,$REV >> /www/svndata/site/hooks/svn_hook.log
▼增加脚本执行权限
chmod +x post-commit
最后操作是关闭服务然再打开服务:
svn服务的关闭:
killall svnserve
svn开启:
svnserve -d -r /www/svndata
测试:svn checkout svn://localhost/site
修改端口
svnserve -d -r 项目路径 --listen-port 21
▼SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理
晨曦
http://wanderboy.blog.51cto.com/6513737/1655932
关注「51CTO技术博客」,每天一篇对你有用的文章
-END-
你离成功只差一步“猛戳”
以上是关于Linux自整理SVN搭建及与站点根目录实现钩子同步的主要内容,如果未能解决你的问题,请参考以下文章