版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用 SVN 的 hook 将更新内容同步到测试环境我们在开发的过程将代码提交到 SVN 后使用 SVN 的 hook ,通过 post-commit 脚本,在目标文件夹根下执行 svn update 操作,将更新内容同步到测试环境,这样开发调试非 常方便。现在 SVN 库的文件数量越来越多, svn 本地的目录已经 3 个多 G 了,几十万个文件,在目标文件夹下执行 svn update 进行更新速度也就越来越慢了,常常提交之后 SVN 客户端 会等几分钟没有响应,在没有响应的时间内,无法再继续提 交内容。如果使用 zendstudio 进行提交的话,所有保存的操 作都要等这个 SVN 提交
2、完成才能继续。原 post-commit 内容:#!/bin/shREPOS=” $TREV= ” $2WEB=/data/webFRAMEWORK=/data/framework export LC_ALL=zh_CN.UTF-8a=svn update $WEB $FRAMEWORK /data/conf/data/shell壬壬壬壬壬壬壬I 壬壬壬壬壬壬壬 IC . -username x*i-password * | gr epn ginc onfif -n $a thenkill -HUP cat /dev/shm/nginx.pidfichown -R www.www $WEB &
3、我们主要做了以下几个工作:1、SVN 更新后,同步在 /data/web、/data/framework 、/data/conf 、 /data/shell 4 个文件夹在下执行 svn update 命令进行同步更新 操作。nginx 。www 。文件数2、如果 /data/conf/nginx.conf 文件修改了,那么重启3、将所有 /data/web 目录下的文件所有者和组都变成 原因在于:1、提交的 SVN 的时候, 4 个文件在根下进行更新, 量巨大响应非常慢。2、 chown 的操作也是比较浪费。 解决的想法:对有变化的文件进行 svn update 这样更有效率。 解决的思路:
4、1、得到本次提交更新的文件。2、在目标目录中更新指定的文件3、同时将指定文件所有者和组变成www 。4、使用PHP程序当shell来完成这样的工作。 最后的成果是巨大的,现在 svn 提交已经是飞一样的快了, 要知道 svn 本地的目录已经 3个多 G 了,几十万个文件。 实现步骤:1、得到更新的文件。通过分析我们发现 post-commit 脚本有两个变量# 库的路径REPOS= ” $1# 新提交的版本号REV= ” $2通过这样的操作就可以得到本次更新的内容与文件。changed=$(svnlook changed -r $REV $REPOS)2、将得到的本次更新的内容提交给PHP脚本
5、来处理,分析哪些文件发生变化/usr/local/php/bin/php-cgi -q/data/shell/svn_post_commit_resources.php“ $changed ” &用 PHP 分析出哪些文件发生变化后, 构造 shell 命令,由 PHP 调用 shell 命令进行更新。3、相关脚本:最新的 post-commit 文件内容:#!/bin/sh# 库的路径REPOS=” $T# 新提交的版本号REV= ” $2WEB=/data/webFRAMEWORK=/data/framework export LC_ALL=zh_CN.UTF-8changed=$(svn
6、look changed -r $REV $REPOS)log=$(svnlook log -r $REV $REPOS)n=$n/usr/local/php/bin/php-cgi -q$changed ” &/data/shell/svn_post_commit_resources.php处理更新内容,执行更新命令的 PHP 脚本文件 svn_post_commit_resources.php 的内容:$files = explode(n, $argv1);if (!is_array($files) $files=(array)$files; foreach ($files as $v)/ 取文件名$f_tem = trim(substr($v, 2);/ 取最顶层目录名$d_tem = substr($f_tem, 0, strpos($f_tem, /);if (!in_array($d_tem, array(web, framework, conf, shell) continue;/ SVN copy 对应的文件$f_name = /data/ . $f_tem;$cmd = svn update $f_name -username x*i -password K*$;chown www.www $f_n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装商务汇报
- 智能照明布线施工合同
- 借支逾期处理与催收
- 影视行业招投标与合同管理流程
- 4S店店长招聘合同模板
- 三亚市电动自行车道路施工通告
- 稀土矿场地平整服务协议
- 在线培训系统服务器租赁合同
- 化妆品工程水暖系统施工合同
- 汽车制造招投标管理流程
- 技术顾问聘书(通用7篇)
- 施工组织设计和施工方案的编制课件
- 穿无菌衣戴无菌手套(课堂)课件
- 胃早癌的简述课件
- 毛细管电泳检测糖化血红蛋白课件
- 核心素养下的道德与法治课教学课件
- 中学生良好学习习惯养成教育课件
- 汉语普通话前后鼻音区分考试题库(200题版)
- 小学英语四年级家长会ppt
- 四年级上册语文老师家长会
- 2022幼儿园感恩节活动主题班会PPT感恩节课件
评论
0/150
提交评论