SVN钩子使用方法详解

Subversion钩子(hooks)  
关于subversion服务器端钩子的介绍:  
我们经常提到的svn hooks(钩子)是一组“外挂”脚本程序, 是svn提供的一组由svn事件触发的特别有用的程序。 这些程序在服务器端执行,可以提供svn之外的一些附加功能。  钩子可以调用批处理文件、可执行文件或者一些类似于perl、python等的脚本。
svn服务端有9种钩子,
分别是:
A. 关于锁定的2种  
   a1. pre-lock
   a2. post-lock
B. 关于解锁的2种  
   b1. pre-unlock
   b2. post-unlock
C. 关于提交的3种  
   c1. start-commit
   c2. pre-commit
   c3. post-commit
D. 关于属性的2种  
   d1. pre-revprop-change
   d2. post-revprop-change  
在Svn的仓库目录D:\svn\hooks下面,默认有9种钩子的模板文件: 

这些钩子模板文件的后缀是tmpl,文件内容可以用一般的文本编辑器进行修改。 如果我们在window2003的svn服务端要实现某种的钩子, 只要修改对应的钩子模板文件内容,加入自己的代码,  然后将文件另存为同名但后缀为bat的可执行批处理文件即可。

 
在本文中,我们主要介绍两个最常用的钩子及应用: 
利用pre-commit钩子实现svn提交日志说明不能为空,至少10个字符
利用post-commit钩子实现svn提交修改代码实时同步到web服务器 
 
1. 利用pre-commit钩子实现svn提交日志长短检查 
避免开发人员对于提交的更改不添加任何说明或注释, 
要求开发人员对于每一次的提交修改都要作出必要的说明或注释, 说明或注释的文字不能少于10个字符。  
在Svn的仓库目录D:\svn\hooks下面创建钩子文件:pre-commit.bat 文件内容如下所示: 



 
在本文中,我们主要介绍两个最常用的钩子及应用: 
 利用pre-commit钩子实现svn提交日志说明不能为空,至少10个字符  利用post-commit钩子实现svn提交修改代码实时同步到web服务器 
 
1. 利用pre-commit钩子实现svn提交日志长短检查 
避免开发人员对于提交的更改不添加任何说明或注释, 
要求开发人员对于每一次的提交修改都要作出必要的说明或注释, 说明或注释的文字不能少于10个字符。  
在Svn的仓库目录D:\svn\hooks下面创建钩子文件:pre-commit.bat 文件内容如下所示: 
 
 
2. 利用post-commit钩子实现svn提交修改代码实时同步到web服务器 
对于一般的中小型开发团队,很多时候, 
既在window2003中搭建有web测试服务器,用于开发演示及功能测试, 又在其上建立svn代码仓库,用于开发小组的代码维护及开发。  
在这种情况下,我们会希望 —— 
如果开发人员在svn中提交或更新了新的代码, 
svn的服务端能够实时将更新后的内容同步到web环境中, ok,这个实现很简单!

假定我们web测试服务器的代码目录为D:\www 
首先我们需要用svn对web的D:\www目录checkout初始化一次:

在Svn的仓库目录D:\svn\hooks下面创建钩子文件:post-commit.bat

文件内容如下所示:

1
2
3
4
5
@ echo off
SET REPOS= "%1"
SET TXN= "%2"
 
"C:\Program Files\Subversion\bin\svn.exe" update "D:\www" --quiet --username www --password wwwpassword


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值