svn提交自动同步到web目录
环境:CentOS6.5 测试线 svn和web服务器在同一台机器上 SVN版本1.6
情景:在测试环境下,开发部提出希望提交到SVN的代码能自动同步到WEB站点目录下,解决每次都要传双份这一问题,尤其是频繁更新后的繁琐,浪费了大量时间。
思路:通过搜索,查到svn的hooks目录的触发功能,该目录下有许多模板,其中一个是post-commit.tmpl,意为“提交后执行”,通过这个功能我们可以将提交代码后要做的事写到里面来执行。
步骤:
1. 首先导出一份svn的文件到网站目录
# svn co file:///data/svn/php/ /data/wwwroot/
注:file:///data/svn/php/ 表示php的svn代码在该Linux系统中的系统路径。
2. 修改“提交后执行文件”post-commit.tmpl
# cd /data/svn/php/hooks
# mv post-commit.tmpl post-commit
# chmod +x post-commit
# cat post-commit
#!/bin/sh
SVN=/usr/bin/svn
WEB=/data/wwwroot
LOG_PATH=/tmp/svn_hook.log
echo "------------Start Commit -----------" >> $LOG_PATH
echo "Time:"`date '+%Y-%m-%d %T'`>>$LOG_PATH
export LANG='zh_CN.UTF-8' #防止乱码
for DIR in `svnlook dirs-changed /data/svn/php/`
do $SVN update $WEB/$DIR
done chown -R www.www /data/wwwroot
备注:由于文件太多太大,第一次做的时候SVN和WEB不在同一台机器,而且没有进行提交优化,所以SVN提交后巨卡(10秒到30秒)!
笔者在此文中写的已是进行了两步优化后的结果,优化的内容为以下两点:
① 将SVN和WEB放到了同一台机器,比提交后触发rsync有所加快,并且不依赖网络。
② 通过“svnlook dirs-changed 网站目录”,打印出SVN更新了哪些目录,svn update只针对这些目录,节省了全局扫描浪费掉的时间!
优化后平均提交后响应时间在3秒内!
svn提交自动同步到web目录的更多相关文章
- [转]svn提交自动同步到web服务器
参考博文:http://my.oschina.net/wddqing/blog/201567 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post ...
- centos搭建svn 服务器 并同步到web 目录(总结)
配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库. 将代码库中代码同步到web目录: 1.在web目录中checkout版本库 进入/home/www目录下 ( ...
- CentOS 创建SVN 服务器,并且自动同步到WEB 目录
CentOS 创建SVN 服务器,并且自动同步到WEB 目录 标签: centossvnsubversion服务器 2013-12-06 10:09 5492人阅读 评论(0) 收藏 举报 分类: ...
- Centos7下搭建SVN服务,本地提交代码自动同步到WEB目录
1.安装SVN服务[root@bogon ~]# yum -y install subversion 2.查看svnserve安装目录[root@bogon ~]# whereis svnserves ...
- CentOS下安装配置SVN服务器并自动同步到web目录
一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...
- SVN 钩子操作-同步更新web目录
一个简单的钩子演示:也可以网上搜索其他高级的 本次想要达到的功能是:每次用户commit 到仓库后,仓库的钩子会自动把程序又更新的www/的web发布目录 1.现在web目录下创建一个test.com ...
- centos搭建svn服务器并同步到web目录
yum install subversion mkdir -v /root/svn cd /root/svn svnadmin create web cd web/conf/ vi passwd te ...
- 在linux上搭建SVN服务器并自动更新至WEB目录
1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组user,该组下添加两个成员user1.user2,密码直接用用户名,两用户可以checkout代码和提交代码 3 ...
- CentOS6.8 搭建SVN并用钩子自动实现同步到web目录
一 安装 yum install subversion 二 检查是否安装成功 svn --version 三 创建仓库目录 mkdir –p /home/svnroot/test 四 创建项目 svn ...
随机推荐
- phpstorm laravel单元测试 配置
laravel中集成了单元测试工具phpunit可以在项目的根目录下进行使用,命令是:phpunti ./tests/单元测试文件名称.在phpstorm中使用phpunit需要做一些配置,指定com ...
- (转)mongodb分片
本文转载自:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html 在mongodb里面存在另一种集群,就是分片技术, ...
- android学习笔记39——使用原始资源
原始资源 android中没有专门提供管理支持的类型文件,都被称为原始资源.例如:声音资源... android原始资源存放位置: 1.res/raw,android SDK会处理该目录下的原始资源, ...
- golang自动导入postgresql脚本
直接代码 package main import ( "fmt" "golang-objective-go/dataFoundation/dataConvert" ...
- Linux从逻辑地址到物理地址
转自:http://blog.chinaunix.net/uid-24774106-id-3427836.html 我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存.C ...
- 黄聪:wordpress伪静态的原理
首先起作用的是配置文件的.htaccess 中的 RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{RE ...
- apache部署多个项目
配置多个ip 简单的说,打开httpd.conf 在最后加入如下内容: <VirtualHost 127.0.0.2:80> DocumentRoot d:/AppServ/www2 Se ...
- Javascript之UI线程与性能优化
在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的.UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行.所以Javascript ...
- 如何写出小而清晰的函数?(JS 版)
本文以 JavaScript 为例,介绍了该如何优化函数,使函数清晰易读,且更加高效稳定. 软件的复杂度一直在持续增长.代码质量对于保证应用的可靠性.易扩展性非常重要. 然而,几乎每一个开发者,包括我 ...
- Qt属性表控件的使用 QtTreePropertyBrowser
属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表. 下图是Qt Creator里的属性表 ...