利用SVN hooks +cURL, 对SVN服务器进行实时同步

团队协同开发,一般都要用到svn, svn确实是个好东东。但一些程序员做测试都是在开发服务器上进行,所以开发同学提交到svn的代码 ,还需一步,就是手工更新到开发服务器。

一般的办法是,就是用python的web.py框架,写一个更新的脚本,通过http的方式对svn进行更新同步。

实现方法:

下面用web.py框架实现的步骤:
1、框架安装
cd /usr/local/soft/
wget http://webpy.org/static/web.py-0.33.tar.gz
tar zxvf web.py-0.33.tar.gz
cd web.py-0.33
python setup.py install
2、编写代码
vi /usr/local/webpy/subversion_web.py
#!/usr/bin/env python

# …
import web,os
render = web.template.render(‘templates/’)

urls = (
‘/’, ‘index’
)
app = web.application(urls, globals())
class index:
def GET(self):
text = os.popen(“cd /home/htdocs/app;svn update”).read()
print text
return text

if __name__ == “__main__”:
app.run()

3、程序永远后台执行
nohup /usr/local/webpy/subversion_web.py &
exit
4、测试更新

http://192.168.1.36:8080/

显示为:
C app/sitemap.xml
Updated to revision 32786.

到这一步,手工更新svn到开发服务器是没问题了。但最大的问题就是半自动 ,程序员提交代码到svn服务器,还需打开浏览器,手工在浏览器里执行 http://192.168.1.36:8080/,方可将代码同步到开发服务器。久而久之,很是麻烦。

最近发现svn还 hooks这功能,非常 不错,自动同步的理论已经实现了。接下去就是要想个办法,怎么通用批处理执行 http://192.168.1.36:8080/,第一当然是想到了curl,考虑到svn服备器在是windows的,所以要下载一个windows版本cURL,下载地址: http://curl.haxx.se/download.html

curl到d盘目录下,然后在hooks目录下新建

post-commit.bat

@echo off
d:/curl.exe -I http://192.168.1.36:8080/

保存退出!

这样每次程序员提交代码到svn,svn会自动触发post-commit.bat脚本,从而进行同步更新!简单又方便,而且适用于不同的服务器!

转载于:https://my.oschina.net/chinaearl/blog/111193

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值