主要用到的是python和pysvn(python)的一个第三方库。 这里注意下pysvn要和对应版本的python使用才能生效,否则import会失败,所以建议先选pysvn,然后根据版本选python。 pysvn非常好的官方使用说明文档:http://pysvn.tigris.org/docs/pysvn_prog_ref.html 代码: import pysvn import os import = pysvn.Revision( pysvn.opt_revision_kind.number, br_num); pysvn_log_start = pysvn.Revision( pysvn.opt_revision_kind.number , last_lib_num); pysvn_log_end = pysvn.Revision( pysvn.opt_revision_kind.number, lib_num); """ retcode
在远程机器上执行脚本时,为了能够保证脚本的实时性,我们一般会将脚本存放到SVN上,远程机器通过SVN的操作去更新脚本; SVN更新脚本只需要2步就可以实现了,这个地方使用到pysvn库,看下实现 # 初始化 client self.client = pysvn.Client() self.client.set_default_username(self.username) self.client.set_default_password _init_servers(configDir) self.client = pysvn.Client(configDir) else: self.client = pysvn.Client util.get_act_str(self.localPath, self.agent.envDict) configDir = os.path.join(tempfile.gettempdir(), "pysvn _init_servers(configDir) self.client = pysvn.Client(configDir) else:
-y install python python-devel python版本要2.6以上才可以支持reviewboard 3、 安装patch yum -y install patch 4、 安装pysvn wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz tar zxvf pysvn-1.7.6.tar.gz cd pysvn -1.7.6/Source python setup.py backport 验证与python的兼容 python setup.py configure make pysvn的编译安装需要subversion-devel mkdir /usr/lib64/python2.6/site-packages/pysvn cp pysvn/__init__.py /usr/lib64/python2.6/site-packages /pysvn cp pysvn/_pysvn*.so /usr/lib64/python2.6/site-packages/pysvn 5、 安装mod_wsgi yum -y install mod_wsgi
/usr/bin/env python # -*- coding:utf-8 -*- import pysvn import locale import datetime import os def setlocale realm, username, may_save ): return True, 'test', 'test', True def svncheckout(): client = pysvn.Client client.callback_get_login = get_login ret = client.checkout(url,path) def svnupdate(path): client = pysvn.Client () ret = client.update(path) #print ret return ret def svninfo(path): client = pysvn.Client
/usr/bin/env python # -*- coding:utf-8 -*- import pysvn import locale import datetime import sys import realm, username, may_save ): return True, 'test', 'test', True def svncheckout(): client = pysvn.Client client.callback_get_login = get_login ret = client.checkout(url,path) def svnupdate(path): client = pysvn.Client () ret = client.update(path) #print ret return ret def svninfo(path): client = pysvn.Client
copy 对于第2步、第3步和第4步,使用Python+svn client comands实现 选择Python是因为最近在不断学习Python 选择svn client commands而不是pysvn 是因为没有在windows上安装好pysvn,于是用svn client commands代替 此外,自动化备份,可以在Jenkins上创建一个job专门用来定时备份JENKINS_HOME 具体的实现脚本见
来安装与python相关的包 这样,许多软件都需要手动安装,安装过程繁琐、复杂,安装时的依赖解决、错误定位和解决花费了大量的时间 尤其是安装ReviewBoard需要解决的依赖甚多,安装pysvn
首先是Python的流行绑定,Barry Scott的PySVN(http://pysvn.tigris.org/)。 PySVN鼓吹它们提供了更多Python样式的接口,而不像Subversion自己的Python绑定的C样式接口。
熟悉SVN已两年,玩过SVNKIT、svn cli、pysvn,当然也搭建过SVN服务端。 平常偶尔也通过GitHub或Git@OSC使用GIT,web界面所提供的功能强大,简单易用。
自己的程序或者用别的库不太明白的时候就靠它了 pywmi: 省了好多折腾功夫 pylint: 培养良好的编码习惯 下面是准备用的,不做评论: pygccxml pyparsing pymacs idapython paimei pysvn