定时更新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脚本即可