Python3下操作SVN
一、背景
在一次需求开发中,需要在python3的环境下,操作SVN,在SVN仓库上实现如下操作:创建SVN目录、拉取SVN文件内容、将文件推送到SVN仓库。
经过不断的探索尝试,最终实现了这些功能,这里将这些功能实现记录下来。
二、python3环境准备
关于python3在linux环境下的安装,可以参考:在Linux系统上安装Python3。
下载安装svn相关python库:https://pypi.org/
根据python版本选择合适的whl库
- pysvn-0.1.0-py3-none-any.whl
- svn-0.3.44-py2.py3-none-any.whl
安装完之后测试:
$ python3
>>> import stat,os,shutil,time,platform
>>> import svn, svn.remote
三、在svn仓库上创建子目录
# 如果SVN仓库上的子目录不存在,就创建出来
def createSubDirOnSVNReportIfNotExists(svn_base_url, svn_username, svn_password, subDir):
subDirs = subDir.split("/")
createDirFlag = False
current_svn_base_url = svn_base_url
for oneSubDir in subDirs:
svnClient = svn.remote.RemoteClient(current_svn_base_url,username=svn_username, password=svn_password)
current_svn_base_url += "/" + oneSubDir
# 查询svn当前目录下的所有子目录
subAll = svnClient.list()
findFlag = False
for subName in subAll:
if oneSubDir in subName:
findFlag=True
break
if not findFlag:
createDirFlag = True
break
# 子目录不存在,创建子目录
if createDirFlag:
svnClient = svn.remote.RemoteClient(svn_base_url