python自动更新SVN

定时更新SVN文档目录

运行环境

  • 系统:Windows7/Windows10
  • Python版本:3.7
  • 已安装SVN

SVN配置

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   SVNUpdate.py    
@Contact :   512759438@qq.com
@Author  :   Jian
'''


setting = {
    'svn': 'E:/Program Files/TortoiseSVN/bin',  # svn的程序所在路径
    'interval': 60*10,  # 更新时间,单位秒  这里设置6个小时更新一次
    'logFile': 'f:/logFile.txt',  # log文件放置位置
    'closeOption': ' /closeonend:1'
}
# /closeonend:0 不自动关闭对话框
# /closeonend:1 如果没发生错误则自动关闭对话框
# /closeonend:2 如果没发生错误和冲突则自动关闭对话框
# /closeonend:3如果没有错误、冲突和合并,会自动关闭
# /closeonend:4如果没有错误、冲突和合并,会自动关闭

dist_lists = [  # 需要更新的folder路径列表
    "F:/xxx/client",
    "F:/xxx/tool/data/config"
    ]

  • 每个属性都有注释说明,根据自己项目更换

更新函数

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   SVNUpdate.py    
@Contact :   512759438@qq.com
@Author  :   Jian
'''

import time, os
from tool.svnConfig import setting, dist_lists

# 用于存放每次运行update_all_dists期间的logs
logs = []

# 运行命令行需先进入SVN所在的路径
os.chdir(setting['svn'])


# 执行更新并记录更新成功或失败的logs
def update_all_dists():
    # 遍历所有需要更新的SVN floders,将更新的cmd拼出来
    for dist in dist_lists:
        cmd = f'TortoiseProc.exe /command:update /path {dist}{setting["closeOption"]}'

        # 记录下更新的时间
        log_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        log = f'Execute {cmd}  --- Time {log_time} \n'
        logs.append(log)

        #   执行更新   (这里后面还需要加上对更新失败的处理)
        update_result = os.system(cmd)

        #  更新完毕,添加成功与否的log
        if update_result == 0:
            log = f'SUCCESS: update {dist} {success} \n'
        else:
            log = f'FAIL: update {dist} fail \n'
        logs.append(log)

    # 将log写入给定的log file
    with open(setting['logFile'], 'a') as f:
        logs.append(f"{'*' * 60} next update")
        for l in logs:
            f.write(l)

    # 将logs[]清空,为下次循环做准备
    logs.clear()


if __name__ == "__main__":
    # 每隔一段时间运行一次更新
    while True:
        update_all_dists()
        time.sleep(setting['interval'])
  • 注释说的应该很明白了,有疑问麻烦留言评论哈

最后的最后,各位的关注、点赞、收藏、碎银子打赏是对我最大的支持,谢谢大家!
需要源码的小伙伴关注微信公众号ID:gameTesterGz
或扫描二维码关注回复svn脚本即可
微信二维码

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游戏测试-AJian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值