关闭

svn的钩子

标签: svnpythoncmdimportserver脚本
845人阅读 评论(1) 收藏 举报

通过svn的钩子可以实现即commit即change通知。

具体方法如下:将commands模块的getstatusoutput函数的     pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')修改为pipe = os.popen(cmd, 'r')

(上述方法并非最佳,应重写一个函数命名为getstatusoutput1,然后将pipe一行重写,否则有可能出现python调用函数getstatusoutput函数是格式不对而产生程序崩溃)

然后再%repository server%/project/hook下增加文件commit.py,pos-commit.bat,源码如下

----------------------------------------commit.py---------------------------------------------------------------

import os
cmd='svnlook youngest "C:/Repository Server/HelloWorld"'
pipe=os.popen(cmd)
version=pipe.read().split('/n')[0]
pipe.close()
cmd='python C:/BuilderServer/buildbot-0.7.5/contrib/svn_buildbot.py --repository "c:/repository server/HelloWorld" --revision '+version+' --bbserver localhost --bbport 9989'
pipe1=os.popen(cmd)
text=pipe1.read()
print cmd
---------------------------------------------------------------------------------------------------------------------

--------------------------------------------pos-commit.bat------------------------------------------------------

python "C:/Repository Server/HelloWorld/hooks/commit.py"

---------------------------------------------------------------------------------------------------------------------

如此来当commit结束后,将执行post-commit.bat批处理,运行python脚本达到钩子效果

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:250465次
    • 积分:4011
    • 等级:
    • 排名:第7739名
    • 原创:149篇
    • 转载:43篇
    • 译文:0篇
    • 评论:32条
    文章分类