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/

Linux自整理SVN搭建及与站点根目录实现钩子同步

Linux自整理SVN搭建及与站点根目录实现钩子同步

配置允许用户访问

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/


Linux自整理SVN搭建及与站点根目录实现钩子同步

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搭建及与站点根目录实现钩子同步


小编提示:
记得回复数字(1~6)祝福一下自己的家人!


回复以下关键词查看往期精彩内容:

回复:“11”查看“我为什么不再使用 QQ”
回复:“12”查看“淘宝、天猫、腾讯等网站系统架构演化之路,so easy!”
回复:“13”查看“孙悟空无性无名时,地府数据库是如何统计的?”
回复:“14”查看“我有一个很奇葩的程序员师兄!”
回复:“15”查看“宝宝半夜老是哭,程序员爸爸设计了这个APP”
回复:“16”查看“万万没想到,硬盘最神秘的功能,居然。。。”
回复:“17”查看“攻下隔壁女生路由器后,我竟然做了。。。”

Linux自整理SVN搭建及与站点根目录实现钩子同步


你离成功只差一步“猛戳”

以上是关于Linux自整理SVN搭建及与站点根目录实现钩子同步的主要内容,如果未能解决你的问题,请参考以下文章

Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署

Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署

SVN设置更新钩子

Linux下搭建SVN服务器及自动更新项目文件到web发布目录(wwwroot)的方法

SVN迁移至Linux服务器实录&钩子Dump实现自动备份

SVN服务器搭建