废话不多说,直接上post-commit脚本了:

日志会全部记录下来包括同步的文件

vim post-commit

#!/bin/sh
REPOS="$1" # 仓库的路径
REV="$2" # 新提交的版本号 export LC_ALL="zh_CN.UTF-8"
expor LANG="en_US.UTF-8" LOGFILE=/var/log/svn-hooks.log # 钩子脚本的日志
# 脚本的标准输出和标准错误输出都打印到日志文件里
exec 1>>"$LOGFILE"
exec 2>&1 SVN=/usr/bin/svn
SVNUSER=luoxiaoguang
SVNPWD=lxg888
WEBROOT=/usr/local/nginx/html
SVNLOOK=/usr/bin/svnlook
TIME=$(date "+%Y-%m-%d %H:%M:%S")
AUTHOR=$($SVNLOOK author -r $REV "$REPOS") #提交作者
CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目录集合
MESSAGE=$($SVNLOOK log -r $REV "$REPOS") #提交时的备注信息,不建议用中文 function myecho() {
echo "$TIME" "$*"
} myecho "**************************************************************"
myecho "提交版本:$REV 作者:$AUTHOR"
myecho "提交备注:$MESSAGE"
myecho "修改目录:$(echo $CHANGEDDIRS | tr '\n' ' ')" MASTERDIR=$(echo "$CHANGEDDIRS" | head -1) #CHANGEDDIRS里的主目录
# 遍历提交的代码目录,同步到WEB服务器上
while [ "$CHANGEDDIRS" != "" ];do
PROJECT=$(echo $MASTERDIR | awk -F / '{print $2}')
myecho "当前项目:$PROJECT"
# 判断项目文件夹
if [ "$PROJECT" == "ipengbei" ];then WEB=/usr/local/nginx/html/ipengbei myecho
myecho "项目:$PROJECT 同步目录:$MASTERDIR"
myecho "同步 $MASTERDIR 到 tyq:$WEBROOT/ipengbei" $SVN --non-interactive update $WEB --username luoxiaoguang --password lxg888 chmod -R 755 $WEB elif [ "$PROJECT" == "ipengbeiweb" ];then WEB=/usr/local/nginx/html/ipengbeiweb myecho
myecho "项目:$PROJECT 同步目录:$MASTERDIR"
myecho "同步 $MASTERDIR 到 ipbweb_dev:$WEBROOT/ipengbeiweb" $SVN update --non-interactive $WEB --username luoxiaoguang --password lxg888 chmod -R 755 $WEB
chmod -R 777 $WEB/App/Runtime
chmod -R 777 $WEB/Webconfig
chmod -R 777 $WEB/UF else
:
fi
# 在目录集合里删除已经同步好的目录
CHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v "^$MASTERDIR")
# 获取新的需要同步的主目录
MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)
done

svn服务端hooks钩子可用于多项目自动同步的更多相关文章

  1. linux svn 服务端搭建

    环境是centos6.x. 关于团队对代码管理,相信大部分人习惯于svn.不过我个人比较喜欢git的.这个blog git 常用命令 就是介绍git的基本用法.现部署svn服务端方式如下: 1. 用y ...

  2. svn服务端安装、权限修改以及客户端的使用

    2017-10-1016:10:2 svn服务端安装.权限修改以及客户端的使用 svn服务端.客户端.汉化包下载 http://pan.baidu.com/s/1c1Ogj2C 1.安装服务器端程序( ...

  3. Linux下安装SVN服务端

    安装 使用yum安装非常简单: yum install subversion 配置 2.1. 创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下 ...

  4. centos6.5 svn服务端搭建

    一.前言 Subversion是一个免费的开源的版本管理系统,它是作为CVS(Concurrent Versions System)的取代品出现的.本文简单介绍了Subversion在centos上的 ...

  5. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  6. svn服务端和eclipse配合使用

    今天弄了个svn服务器来做项目的版本控制,讲讲我做的步骤吧 1.安装svn服务端 2.下载subclipse插件 3.将subclipse插件安装到eclipse上,点击Install New Sof ...

  7. SVN服务端启动解决方案(2013-12-10 记)

     解决每一次开机都得用DOS启动SVN服务,而DOS窗口又无法关闭的情况 1.安装Setup-Subversion-1.8.5.msi搭建好SVN服务端(下载地址:http://subversion. ...

  8. SVN 服务端 和 客户端

    网址大全  |  EF CodeFirst  |  电视  |  MyNPOI  |  开源  |  我的皮肤  |  ASP.NET MVC4  |  前端提升  |  LINQ  |  WCF   ...

  9. suse安装svn服务端和客户端的使用

    suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...

随机推荐

  1. PHP中PDO的配置与说明

    住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll ...

  2. data URI

    参考资料:http://www.cnblogs.com/hustskyking/p/data-uri.html 与http,ftp等协议类似,data URL也是一种协议,不同的是它直接将数据(编码或 ...

  3. 织梦DedeCMS删除所有栏目或文章后,新建ID不从1开始的解决方法

    这个修改方法很简单,从模板无忧那里找到的,只需要在后台系统-SQL命令行工具里面运行以下语句即可,不用采用笨方法重新安装织梦CMS了. 删除所有栏目,新建ID从1开始: ALTER TABLE `de ...

  4. 使用注解实现IOC

    在biz业务处理类实现类中 /** * 用户业务类,实现对User功能的业务管理 */ @Service("userBiz") public class UserBiz imple ...

  5. HTML5中的Range对象的研究

    一:Range对象的概念 Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改页面上的任何区域,可以通过如下创建一个空的Range对象,如下: var  range = docu ...

  6. RecContentType有哪些

    HTML  页面text/javascript  `type="text/javascript"` 是比较老的写法IETF 推荐的是 `type="application ...

  7. Android Bitmap 全面解析(四)图片处理效果对比 ...

    对比对象: UIL Volley 官方教程中的方法(此系列教程一里介绍的,ImageLoader的处理方法和官方的差不多) -------------------------------------- ...

  8. FTP服务器常规操作

    导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下 ...

  9. ios数据库

    1. ios数据库管理软件 ios使用的数据库是sqlite 管理软件有2种, 我只记得一种, 名字叫做 MesaSQLite 2. sqlite数据库 2.1.修改表结构 ①:更改字段类型长度 AL ...

  10. search in 2d matrix and serach minimum in rotated array

    import java.io.*; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collecti ...