SVN精华操作

python 操作SVN 命令也可直接在cmd里执行
1、获取SVN 服务器上的文件列表

VNpath = 。。。。
SVNname = 。。。。。
Svnpassword = 。。。。。
import os
import re
# 检测空格# cmd命令需要增加 双引号因为会有空格出现的话
class Detectionspace():
    def detectionspace(self, path):
        if path.find(' ') >= 0:
            path = "\"" + path + "\""
            return path
        else:
            return path
            
# 获取SVN文件列表
class GetsvninfoCMD():
    def getinbfo(self, cmdsvn):
        r = os.popen(cmdsvn)
        text = r.read()
        r.close
        content = [i for i in text.split('\n') if i != '']  # 获取的文件list
        return content
# 获取的文件list
def getsvnfilelist():
    SVNpaths = Detectionspace().detectionspace(SVNpath)  # 检测空格
    # --depth infinity 为递归检测 , 不加这个就检测当前目录下的东西不递归
    cmdContent = "@svn list %s --depth infinity --username %s --password %s --no-auth-cache --non-interactive --trust-server-cert" % (
        SVNpaths, SVNname, Svnpassword)
    scnmess = GetsvninfoCMD().getinbfo(cmdContent)  # 获取的文件list
    return scnmess


## file = filepath.split('/')[-1]  # 截取文件名  截取文件名字  filepath是全路径的文件 有需要循环添加代码即可

2、获取SVN文件的日志信息

import os
import re
# 检测空格# cmd命令需要增加 双引号因为会有空格出现的话
class Detectionspace():
    def detectionspace(self, path):
        if path.find(' ') >= 0:
            path = "\"" + path + "\""
            return path
        else:
            return path

# 获取的文件日志信息
class GetSVNinfos():
    def getinbfo(self, cmdsvn):
        rootLog = os.popen(cmdsvn)
        res = rootLog.read()  # 获取的文件日志信息
        # print(res)
        return res
# 获取S
VN日志信息
def svnloginfo(filepath):
    filepaths = Detectionspace().detectionspace(filepath)  # 检测空格
    cmdContent = 'svn log -l 1 %s  --username %s --password %s --no-auth-cache --non-interactive --trust-server-cert' % (
        filepaths, SVNname, Svnpassword)
    res = GetSVNinfos().getinbfo(cmdContent)  # 获取的文件log
    res = res.replace('-', '')
    res = res.replace(' | ', '|')
    res = res.replace('\n', '|')
    res = res.replace('+0800', '')
    res = res.split('|')  # 日志信息是|分割的字符串
    while '' in res:  # 删除空元素
        res.remove('')
    return res

3、这个也是比较难的 SVN命令行获取单个文件 这是版主废了好久才整明白的 很重要


cmdContent = '@svn.exe cat "%s">SVN.xlsx --username %s --password %s --no-auth-cache --non-interactive --trust-server-cert' % (
                "SVN路径下/XXX/SVN.xlsx",  SVNname, Svnpassword)
            # print(cmdContent)
            os.system(cmdContent)
``
4、在SVN服务器上创建文件夹操作
cmd 调用即可
```python
svn mkdir "https://11.11.14.79/testApp/XXXXX/小工具/test" -m "SVN命令创建一个目录测试" --username XXXXXXX --password XXXXXXXX

5、SVN 上传单个文件,无版本控制的文件到SVN,
第一个双引号是要上传到SVN的本地文件所在路径,第二个双引号是 上传到SVN的地址,要确定到具体文件才行。

svn import "E:\TestConfiguraion_20190606\Configuration\config_xml_ddd\service\product_assemble_config_win64.xml" "https://10.1.14.79/testApp/配置管理/补丁包/product_assemble_config_win64.xml" --username xxxxxxxx --password xxxxxxxxxxxxx --non-interactive --trust-server-cert -m "[ADD]add the packages to svn files"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值