如何从python脚本运行SVN命令?

Ric*_*rro 18 python svn

基本上我想写一个python脚本做几件事,其中一个是使用subversion(SVN)在存储库上运行checkout,并且可能会执行更多的svn命令.最好的方法是什么?这将作为crond脚本运行.

小智 21

这会有用吗?

p = subprocess.Popen("svn info svn://xx.xx.xx.xx/project/trunk | grep \"Revision\" | awk '{print $2}'", stdout=subprocess.PIPE, shell=True)
(output, err) = p.communicate()
print "Revision is", output
Run Code Online (Sandbox Code Playgroud)

  • @Ricardo如果您打算使用这种技术,我认为如果输出是以XML格式请求会更简单.像`svn info --xml`之类的东西.这样,结果将更容易解析和处理. (5认同)

Tor*_*xed 16

试试pysvn

就我测试而言,为您提供了极佳的访问权限.以下是一些示例:http://pysvn.tigris.org/docs/pysvn_prog_guide.html

为什么我说我测试它的原因是因为我已经转移到Git ..但是如果我记得pysvn是(唯一的)最好的svn库.

  • 实际上,有两个用于转换的python模块:pysvn和svn(围绕转换C库的SWIG库):http://svnbook.red-bean.com/en/1.7/svn.developer.usingapi.html#svn.developer。 usingapi.otherlangs根据您要执行的操作,大多数人都使用pysvn。 (2认同)