转载请标明出处:http://www.cnblogs.com/zblade/

最近在思考怎么实现python的一键打包,利用python的跨平台特性,可以实现在windows和mac下均可执行的特点。要对游戏工程进行打包,那么就需要将游戏工程进行更新,然后才执行打包。目前项目中采用了SVN和Git并行开发的模式,那么就需要既更新svn,又要更新Git,所以调研了一下如何用Python脚本来执行相关的命令,更新SVN和Git对应的工程。

对于SVN,首先需要配置SVN的相关信息: SVN软件所在地址,SVN的url路径,本地svn工程的路径,以及svn操作的选项,可以单独写一个配置的python脚本,简易版本如下:

# -*- coding: utf-8 -*-
setting = {
'svn': r'D:\SVN\bin',
'url':'your svn path ', #svn的url, 可以在svn check中查找到
'dist':'your local svn project path', #本地的svn工程所在路径,注意python中路径用左向斜杠,也可以前面加r,然后用右向斜杠
'closeOption':' /closeonend:1'
}
# /closeonend:0 不自动关闭对话框
# /closeonend:1 如果没发生错误则自动关闭对话框
# /closeonend:2 如果没发生错误和冲突则自动关闭对话框
# /closeonend:3 如果没有错误、冲突和合并,会自动关闭
# /closeonend:4 如果没有错误、冲突和合并,会自动关闭

对于Git来说,执行完Git的安装后,在系统的环境变量中,在path中增加Git的路径,就可以在cmd中执行git的相关命令:

然后在命令行中输入git,可以得到:

说明Git安装正确,同时可以支持pull/push等基本命令操作,那么在python脚本中也可以执行这样的操作,写了一个简易版本的python脚本,集合svn和git的更新于一体:#!/user/bin/python#coding = utf-8


import os
import time
import configs dist = configs.setting['dist']
#先切换到git工程所在目录
os.chdir('D:/client')
#git pull命令
cmd = 'git pull'
result = os.system(cmd) os.chdir(configs.setting['svn'])
#此处这个path后面必须有空格,不然svn update会path路径报错
#svn revert 命令
cmd = 'TortoiseProc.exe /command:revert /path ' + dist + ' /notempfile' + configs.setting['closeOption']
result = os.system(cmd)
#svn update命令
cmd = 'TortoiseProc.exe /command:update /path ' + dist + ' /notempfile' + configs.setting['closeOption']
result = os.system(cmd) if result == 0:
print('svn update succes')
else:
print('svn update fail')

在命令行中执行,可以得到:

后续可以在此基础上进一步的完善和迭代,今天的小记就到这儿~

最新文章

  1. 贝赛尔曲线UIBezierPath
  2. finally类
  3. android 触摸事件分析
  4. virtualbox 安装 虚拟机的时候报错不能创建新任务
  5. D - Mysterious Present
  6. 六:分布式事务一致性协议paxos的分析
  7. std::map的操作:插入、修改、删除和遍历
  8. 学习日记_SSH框架web.xml配置文件篇
  9. 一个用python实现的东方时尚(驾校)抢课程序
  10. bat命令学习笔记
  11. 使用recordmydesktop进行屏幕录像
  12. 斯坦福大学自然语言处理第一课——引言(Introduction)
  13. Ubuntu16.04 添加 Docker用户组
  14. TP3.2 中使用 PHPMailer 发送邮件
  15. AngularJS进阶(十)AngularJS改变元素显示状态
  16. 用pyinstaller打包python程序,解决打包时的错误:Cannot find existing PyQt5 plugin directories
  17. IIS Web服务扩展中没有Asp.net 2.0
  18. Unity3D学习笔记(二十五):文件操作
  19. 安装labelImage的问题qt
  20. 解决只有单引号的Json格式转换成bean问题

热门文章

  1. vector作为函数返回值
  2. 【bzoj 2326】【HNOI 2011】数学作业
  3. BZOJ_1015_[JSOI2008]星球大战_并查集
  4. BZOJ_4198_[Noi2015]荷马史诗_huffman实现
  5. shell与export命令
  6. Django admin自定制功能
  7. 部署Chart应用并使用.net core读取Kubernetes中的configMap
  8. Navicat:实现两个数据库结构同步和数据库对比
  9. 聊一聊C# 8.0中的await foreach
  10. Java消息系统简单设计与实现