SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4607|回复: 11

[求助] SVN提交自动将log发邮件给相关人的hooks如何写

[复制链接]
发表于 2013-2-22 10:59:48 | 显示全部楼层 |阅读模式
本帖最后由 gaojianhang 于 2013-2-22 11:03 编辑 ! }7 T$ R0 A6 O7 Y, q/ }) t; F6 l

1 O; F& c9 X+ A# F+ \) H大家好,
7 I" Q  H1 j8 h" T      我想在SVN提交的时候自动将 本次提交的log信息自动邮件给相关人。在网上查了一下方法,但实施起来没有报错也没有发邮件,请各位大神帮忙看看。
( L, x  q1 e* ^" Q9 E( y# w
0 F: D! F7 K* V! J( S% j% eWindows下的SVN邮件通知
- Z3 D! _' p* D1 \8 L. H                                               1 A- u- H2 j8 b
一、下载
  U+ z* L4 [- g; X2 D5 D下载所需要的软件包
' \( Z3 w5 X/ B& H' z: l! jhttp://sourceforge.net/projects/blat/files/下载blat194.zip文件;
) |& @5 P% A9 t4 Jhttp://unxutils.sourceforge.net/下载UnxUpdates.zip文件;
% r; y0 G! B' b, r3 v
/ [7 p- m2 n4 |二、安装
' a" |# |+ ?7 b" q+ }1.把blat194.zip解压,把里面的blat.exe拷贝到D:\SVN\Subversion\bin/ F. p/ A: H/ t: v# c) D
2.把UnxUpdates解压,把里面的sed.exe和wc.exe拷贝到D:\SVN\Subversion\bin! D/ ?2 x0 q! J" X
+ p' g& T; j* \% W3 R1 Z! D
下面将post-commit.bat内容贴出:
: z# \9 {2 Y) y4 q0 K  B- A. ~$ w@echo on
1 R) w& J  H& J% k( i0 W$ R5 V! U
. K% H; m3 z$ n5 m, ^9 q' Pset REPOS=%19 J2 l' _: j5 W
set REV=%2
$ D2 `6 o$ X$ [  a) bset RD=%RANDOM%   “这个是产生随机数,为的是不要重复文件名。避免发生提交冲突”% u' K2 Z& y% k3 u5 E) [
set PATH=D:\SVN\Subversion;D:\SVN\Subversion\bin;
3 ~* ^& u6 O" C/ \0 sset SMTP=-subject "SVN COMMIT NOTES" -server smtp.163.com -u tclstb -pw tcldqa123456 -f  tclstb@163.com -charset utf-8
6 O  s  ^* i; p5 T0 r8 z$ iset LOG_BASE=E:\SVN_TEMP_LOGS
, R9 F6 O; w* g# ^3 T8 S; V0 T) {/ J# i. B7 x) S& @
svnlook info %REPOS% > %LOG_BASE%\MSG_%RD%.txt   “获取执行提交的用户 时间 以及日志信息等等”
  D3 W6 `1 ^8 u" x0 d5 g- S9 R$ x
, ~4 O9 Y9 f) ?3 ?: A% t8 ~9 q: isvnlook changed %REPOS% >> %LOG_BASE%\MSG_%RD%.txt- a) ?; N) g% L1 G2 ?

* J# r. K- s5 \! h# t7 hecho The Current Version After Commit :%REV% >> %LOG_BASE%\MSG_%RD%.txt  “文本处理基本操作”
9 s0 Q7 d' ~6 S/ R
& x( F0 k, S6 h: Z8 l; M7 Qset PROJ_NAME=BTP155; f. i/ [- a* o# b7 |( K( q6 T
set PROJ_EMAIL= 我自己的邮箱
0 \: t& r$ w0 @; Z$ tset PROJ_MATCH=0
  g7 ~& @+ Y/ [  r2 I" kfor /f "tokens=1" %%G IN ('sed -n -e "/%PROJ_NAME%/p" %LOG_BASE%\MSG_%RD%.txt ^| wc') DO set  PROJ_MATCH=%%G
& ?/ L% o  k+ v8 Pif %PROJ_MATCH% GTR 0 blat %LOG_BASE%\MSG_%RD%.txt -to  %PROJ_EMAIL% %SMTP%) j* f1 b6 d7 L& _1 z

7 o6 E1 }% H# _8 \exit 0
' ]8 R6 F- L$ I% q  ?  t3 Z! I1 a
发表于 2013-2-22 11:15:09 | 显示全部楼层
set PATH=D:\SVN\Subversion;D:\SVN\Subversion\bin;$ |- U# e8 t0 K3 Z
这个地址怎么有两个?3 d* w# }2 y7 A

" G: E2 I0 j3 e7 `附件为我现在用的SVN邮件代码,也是使用blat,仅供参考。' c# m+ F( j5 b

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2013-2-22 11:09:28 | 显示全部楼层
好高级呀,偶不会 给你顶一下
回复 支持 反对

使用道具 举报

发表于 2013-2-22 11:11:55 | 显示全部楼层
坐等高手解答
回复 支持 反对

使用道具 举报

发表于 2013-2-22 11:22:57 | 显示全部楼层
附上邮件格式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金钱 +10 收起 理由
gaojianhang + 10 谢谢。十分感谢

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-22 14:12:28 | 显示全部楼层
试了,没调通。还是没有发邮件。请指点一下。
: d0 W- |& b; b, H7 }我确定 c:\csvn\bin 下面有blat.exe
" {0 V: a4 q% l, J2 d* W
; ]$ v3 o4 e, L我是把你发的脚本复制到post.commit.bat里面了。) I8 u  ]) R2 o9 i0 r
修改了几个地方:: ^; H) R" G* ~8 u( u6 T( a
1、set SVN_BINDIR=c:\csvn\bin
8 _# C9 K0 x( V+ b) P2、7 ~+ E1 a0 W+ _$ w
blat "%LOG_FILE%" -tf D:\Repositories\HIE_GrouList.txt  -server smtp.xxxx.com(发邮件的协议地址) -f 我的邮箱 -u 我的邮箱 -pw 邮箱密码  -subject "[SVN]rev %REV%, Commit by %Author%" -base64 -charset Gb2312
$ y' X, Z7 [. r9 k. o5 G& U# z+ `. W
; e  K# [  x8 w+ ]' @8 d还有什么地方需要注意。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-23 11:50:43 | 显示全部楼层
可以了。
3 P% |) I. s; a3 @4 f但是问题出来了。& Z- p5 ^3 }8 w+ L7 Q; w
我们同一个配置库下 branches下面有好多量产分支,我只关心某个分支,这个分支上提交我想收到邮件。
' t0 E2 u6 z9 }3 v现在对整个配置库提交,我都能收到邮件。垃圾邮件忒多了。怎么能过滤一下
回复 支持 反对

使用道具 举报

发表于 2013-2-25 17:05:04 | 显示全部楼层
非常实用的小功能,支持一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-26 14:34:29 | 显示全部楼层
gaojianhang 发表于 2013-2-23 11:50 : ]: d- }7 a/ c
可以了。
' e) M2 r+ z& o$ C9 B/ d7 ]' d但是问题出来了。
  O/ t$ C, E+ ~我们同一个配置库下 branches下面有好多量产分支,我只关心某个分支,这个分支 ...
- J! ^7 Q4 T  G4 L$ t
这个问题,谁能帮忙看一下4 \0 q5 o2 a* Q. i4 J5 z7 U
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-25 16:28:15 | 显示全部楼层
几年过去了。 任何问题都比不过时间。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-18 09:07 , Processed in 0.068816 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表