Svn 笔记—— Hooks

pre-commit 钩子功能:

[[email protected] hooks]# cat /application/svndata/sadoc/hooks/pre-commit

#!/bin/bash

#Check message lenth            ---更新版本时强制输入信息小于5个字符会退出

REPOS="$1"

TXN="$2"

logmsg=`svnlook log -t $TXN $REPOS |grep "[a-zA-Z0-9]"|wc -c`

if [ $logmsg -lt 5 ];then

echo $logmsg 1>&2

echo -e "\nLog message is too short" >&2

exit 3

fi

#Check upload filesize         ---检查文件大小

MAX_SIZE=1024000               ---阈值

SVNLOOK=/usr/bin/svnlook

files=$($SVNLOOK changed -t $TXN $REPOS |grep "^A "|awk ‘{print $2}‘)

---取出状态是添加的文件列表(A:表示添加)

for f in $files

do

filesize=$($SVNLOOK cat -t $TXN $REPOS $f | wc -c)    ---判断大小

if [ $filesize -gt $MAX_SIZE ];then

echo "The new add file $f is too large (must <= $MAX_SIZE)" >&2

exit 1

fi

done

exit 0

记得加上执行权限哦~~

下面是有关各命令的参数详细解释和别的一些东西。。。

http://www.subversion.org.cn/svnbook/1.4/svnbook.html

http://www.subversion.org.cn/svnbook/nightly/svn.ref.svnlook.c.cat.html

时间: 2024-10-17 03:20:52

Svn 笔记—— Hooks的相关文章

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使用hooks自动更新

由于项目测试环境频繁提交, 每次都上去切浪费很多精力,就打算采用SVN自动更新的方法来节省此操作 采用SVN自带的hooks来实现 具体操作 在svn安装目录下(非项目目录) 进入hooks目录 看到post-commit.tmpl cp post-commit.tmpl post-commit vim post-commit 如果需要多目录更新,可以把我上面的注释去掉 最后更改post-commit的执行权限, 我这边为了方便直接改成0777 也可以改成apache的 SVN使用hooks自动

SVN钩子hooks

简述 由于安全原因,Subversion版本库在一个空环境中执行钩子脚本-->就是没有任何环境变量,甚至没有$PATH或%PATH%.注意必须在你的钩子中设置好环境变量或为你的程序指定好绝对路径. 默认情况下,SVN版本库钩子的目录中包含各种版本库钩子模板 [[email protected] hooks]# ll /svn/HLink/hooks/ 总用量 36 -rw-r--r-- 1 root root 1977 12月 19 2016 post-commit.tmpl -rw-r--r-

centos7配置svn钩子hooks脚本自动同步代码到项目目录

由于项目需要,svn提交后的代码希望再测试服务器上测试,每次提交后还要手动去svn update一次 十分麻烦,配置好svn钩子以后就省去了这些麻烦. 进入svn版本库目录找到hooks目录找到文件post-commit.tmpl 复制出一个命名为post-commit的文件,并修改权限为可执行权限 命令如下: cd /var/data/svndata/myproject/hooks cp post-commit.tmpl post-commit chmod 755 post-commit vi

Svn 笔记—— 配置

创建版本库 [[email protected] /]# svnadmin create /application/svndata/sadoc [[email protected] /]# tree /application/ /application/ ├── svndata │   └── sadoc │       ├── conf │       │   ├── authz │       │   ├── passwd │       │   └── svnserve.conf │  

SVN的Hooks功能--强制添加注释

所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本. SVN版本库目录下有hooks目录,里面有很多.tmpl的文件.这些文件用以定义某些动作触发的 hook脚本.默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的.相当于Netfilter的各个hook点没有注册hook函数.所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本.

配置SVN的hooks功能自动更新代码

前言解读 用过SVN的小伙伴们,都应该知道hooks(钩子)这个功能,的确日常企业内部测试环境经常会用过这个"特殊"的功能,今天来聊一聊SVN hooks 为何而用? 传统的WEB网站代码发布基本依靠手工操作 大概的整个流程如下: 开发本地环境开发代码 提交SVN版本库 然后将本地环境代码使用工具上传至待发布目录 备份原WEB站点代码目录 发布新代码至WEB目录 基于这类重复操作的问题,为了提高效率,因此,引入了SVN hooks功能 配置SVN hooks SVN安装这里就不赘述了,

svn采用hooks钩子自动同步代码

在Apache初次拉取svn代码到根目录比如:运行后再输入用户密码svn co svn://10.0.1.120/work/ --username jiangsq在仓库hooks/post-commit编辑如下参数(如果没有复制模块即可)#!/bin/shREPOS="$1"REV="$2"export LC_ALL="zh_CN.UTF-8"export LANG="en_US.UTF-8"SVN_PATH=/usr/bin

SVN - 笔记

SVN(版本控制) 1.什么是SVN · 多人共同开发同一个项目,内部最大的问题是,在比较短的时间内如果有多人同时开发同一个文件,会造成彼此的代码相互覆盖的情况发生. · 管理着随时间改变的数据,这些数据放置在一个中央资料档案库中(repository).这个档案库很像一个普通的文件服务器,不过它会记录每一次文件的变动.这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史. 2.使用SVN的作用 · 多人开发同一个项目不会出现代码覆盖的情况. · 针对一个文件可以创建许多不同的版本,并且可以