使用SVN的hook将更新内容同步到测试环境

#!/bin/sh

# 库的路径
REPOS=”$1″
# 新提交的版本号
REV=”$2″

WEB=/data/web
FRAMEWORK=/data/framework
export LC_ALL=zh_CN.UTF-8

changed=$(svnlook changed -r $REV $REPOS)
log=$(svnlook log -r $REV $REPOS)
n=$’\n’

/usr/local/php/bin/php-cgi -q /data/shell/svn_post_commit_resources.php “$changed” &
————————————–

处理更新内容,执行更新命令的PHP脚本文件 svn_post_commit_resources.php 的内容:
—————————————–
$files = explode("\n", $argv[1]);
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_name‘";

exec($cmd);
       if (strpos($f_tem, ‘nginx.conf‘)) {
               exec("kill -HUP `cat /dev/shm/nginx.pid`");
       }
}
exit();
?>

时间: 2024-10-11 16:40:11

使用SVN的hook将更新内容同步到测试环境的相关文章

svn服务器的搭建以及利用svn hook与web根目录同步

svn原理图示 2.SVN服务器的搭建 1.查看是否安装svn   rpm -qa | grep subversion   2.安装 yum install subversion 3.测试是否安装成功   /usr/bin/svnserve --version   如提示以下内容,说明已安装成功   --------------------------------------   svnserve,版本 1.6.11 (r934486)      编译于 Apr 11 2013,17:28:04

myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能

原理是这样的 svn服务器一般放在公共的服务器上,大家连这个服务器,在MyEclipse上使用svn控件 可以下载svn上的项目至本地,所以很多公司将开发要用到的软件都放在svn上,有同事来只要连上svn 就可以把需要的东西下下来了 1.update更新更新,是指 服务器上变动了的 而你本地没有变动,需要你更新, 2.commit提交提交,是指服务器上没有的,也就是你改过的东西,你需要将代码提交,其他同事更新你的代码 3.synchronize同步同步,是在更新提交之前做的工作,更新提交前先同步

Winform文件夹内容同步更新、备份、日志、恢复

相信大家做项目或者处理文件时候经常要用到备份的功能,这里给大家做一个可以同步更新文件夹内容并且备份的Winform程序,目前地址路径在App.Config文件里面设置,如需更改直接用记事本编辑即可,下面放代码和截图. 1.CS代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Li

Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步

1. tortoiseSVN 关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用. 2. VisualSVN Server 关于 VisualSVN Server 的安装使用详见博文 VisualSVN-Server服务器的搭建. 或参考 VisualSVN Server的配置和使用方法(转). 另外需要说明的是,VisualSVN Server 中 tag branch trunk用法,官方并没有给出严格的限制,可参考如下2篇博文: SVN中trunk,

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

一.linux服务器端配置 [[email protected] ~]# rpm -qa | grep sub subversion-libs-1.7.14-10.el7.x86_64 subversion-1.7.14-10.el7.x86_64 [[email protected] ~]# ps -ef | grep svn root      21019  20613  0 21:57 pts/0    00:00:00 grep --color=auto svn [[email prot

LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)

安装采用YUM一键安装: 1.环境Centos 6.6 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/svndata 4.建立版本库 创建一个新的Subversion项目svnadmin create /www/svndata/project 5.版本库配置 进入对应的版本库如nilrxx,里面有一些自动给生成的文件.在conf目录下就是我们需要配置的三个文件:authz 

SVN太旧,要更新问题

同步或者提交的时候出现问题提示 The working copy needs to be upgradedsvn: Working copy 'E:\JAVA\Workspaces\uhr' is too old (format 10,created by Subversion 1.6) 问题原因:项目是在svn是低版本时候检出的, 后来进行了svn版本升级 , 再更新项目就会出现如上问题.解决办法:更新该项目的svn右击项目--team--upgrade working 升级完成后,重新打开v

SVN 使用hooks 自动更新到远程的web目录下

环境: A机器192.168.1.10  作为SVN的服务端     (环境 apache svn ssh) 环境: B机器 192.168.1.20    (环境 nginx php ssh svn 作为客户端) 目的:开发人员上传代码到A机器时, 会自动更新到B机器上nginx代理服务器的web目录,  以便开发人员直接访问. 环境搭建: A机器apache+svn环境的配置. http://my.oschina.net/denglz/blog/89183 配置好以后svn的基础功能(检出/

使用SVN钩子运行PHP更新服务器代码的注意事项

想通过本地提交代码到SVN服务器,同时同步测试服务器的代码 使用SVN钩子,运行服务器的php文件 代码如下: <?php header("Content-Type: text/html; charset=utf-8"); header("Cache-Control:no-cache,must-revalidate"); $username = '用户名'; $password = '密码'; $target_dir = '路径'; exec("su