自动化工作之自动更新SVN

摘要:
内容如下:@echo添加计划任务rem将“UpdateSVN.bat”和此bat放在同一目录中,双击以创建计划任务,并自动执行此batSCHTASKS/create/SCDAILY/ST07:00:00/TN“UpdateSVN automatically”/TR“%~sdp0UpdateSVN.bat”/Fpause运行方法3。将1,2中创建的bat放在同一目录中,并将其修改为您自己的SVN和TortoiseSVN安装目录。双击Create Scheduled Task.bat以检查任务是否在任务调度器中成功创建。4.双击更新SVN.bat,检查SVN是否可以正常更新。如果有两个顶级报告没有目标或SVN跳过错误,则无法更新SVN。请检查bat文件中的空间是否正确,将bat放在SVN目录外,然后重试。

任务计划程序

任务计划程序是Window自带的组件

image

微软文档

http://windows.microsoft.com/zh-cn/windows-vista/automate-tasks-with-task-scheduler-from-windows-vista-inside-out

打开方法

方法一:开始菜单 控制面板 管理工具 任务计划程序

方法二:开始菜单 所有程序 附件 系统工具 任务计划程序

image

在这儿可以创建任务,让它按我们的计划去做我们想做的事。

自动更新SVN

TortoiseSVN文档:https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html

使用TortoiseSVN的TortoiseProc.exe进行更新SVN,

参考资料:http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-automation.html

tortoisesvn提供的api

XXXXTortoiseProc.exe /command:update /path:"c:svn_wc" /closeonend:0

实现代码

更新svn.bat

1、创建一个bat文件,命名为:更新SVN.bat 。内容如下:

@echo off
@echo ================自动更新SVN Start===============
rem SVN安装目录
SET svn_home=D:Program FilesTortoiseSVNbin
rem SVN项目目录
SET svn_work=D:CodeUnity3DSVNcosmosboxcosmosbox
rem SVN日志目录
remSET setup_path=D:
@echo 正在更新目录 %svn_work%
 
Echo 正在杀死进程...
rem excel和word如果打开状态,会导致不能正常更新,所以要把进程结束,我机器安装的是WPS
taskkill /f /im et.exe 
taskkill /f /im wps.exe
Echo 杀死进程完毕
 
 
rem 检查日志文件
rem if exist "%setup_path%"autoUpdate.log (echo update: %date% %time%  >> "%setup_path%"autoUpdate.log) else echo create: %date% %time% >"%setup_path%"autoUpdate.log
 
rem 执行SVN更新命令,更新对话框不自动关闭
"%svn_home%"TortoiseProc.exe/command:update /path:"%svn_work%" /notempfile /closeonend:0
echo ==============自动更新SVN Finish==============
pause

创建计划任务.bat

2、再创建一个bat文件,命名为:创建计划任务.bat。内容如下

@echo 添加计划任务
rem 把"更新SVN.bat"和此bat放在同一目录,双击即可创建计划任务,每天7:00自动执行此bat
SCHTASKS /Create /SC DAILY /ST 07:00:00 /TN "自动更新SVN" /TR  "%~sdp0更新SVN.bat" /F
pause

运行方法

3、把1,2中创建的bat放在同一目录下,修改成自己的SVN和TortoiseSVN的安装目录。

双击 创建计划任务.bat ,在任务计划程序中查看任务是否创建成功

可能遇到的问题

4、双击 更新SVN.bat 查看是否能正常更新SVN,如果出现 Two top-level reports with no target   或 SVN跳过 错误不能更新SVN。

请检查bat文件中空格是否正确,把bat放置在SVN目录外,再重试。

同时更新多个SVN库

如果有多个SVN库,需要同时更新的话,

方法一:同时打开多个svn窗口进行更新

image

批处理脚本

@echo off
Echo 正在杀死进程...
rem 把WPS相关的进程 Kill避免更新过程中lock
taskkill /f /im et.exe
taskkill /f /im wps.exe
taskkill /F /IM "TortoiseProc.exe"
Echo 杀死进程完毕

rem cosmosbox ,strikehero_art,cosmosbox , trunk 是四个不同的svn库
start TortoiseProc.exe /command:update /path:cosmosbox
start TortoiseProc.exe /command:update /path:strikehero_art
start TortoiseProc.exe /command:update /path:cosmosbox-op
start TortoiseProc.exe /command:update /path:trunk


rem参考 http://chevy.iteye.com/blog/1271797 
rem http://www.cnblogs.com/luomingui/archive/2012/09/09/2678045.html

方法二:在同一个SVN窗口更新多个不同的SVN库

image

批处理脚本

@echo off
@echo ================自动更新SVN Start===============
rem SVN安装目录
SET svn_home=C:Program FilesTortoiseSVNbin
rem SVN项目目录
SET svn_work_code=X:xxgamexx_code_vn
SET svn_work_gameres=X:xxgamexx_scheme_vn
SET svn_work_product=X:xxgamexx_product_vn

@echo 正在更新目录 %svn_work_code%,%svn_work_gameres%,%svn_work_product%

rem excel和word如果打开状态,会导致不能正常更新,所以要把进程结束(区分wps或office进程)
rem taskkill /f /im et.exe 
rem taskkill /f /im wps.exe
rem Echo 杀死进程完毕

rem 执行SVN更新命令,更新对话框不自动关闭
"%svn_home%"TortoiseProc.exe/command:update /path:"%svn_work_code%*%svn_work_gameres%*%svn_work_product%" /notempfile /closeonend:0

echo ==============自动更新SVN Finish==============

免责声明:文章转载自《自动化工作之自动更新SVN》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js局部打印 itMarkdown怎么使用制表符TAB键?为什么TAB失灵了?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

工作队列

一、介绍 在中断处理中,经常用到工作队列,这样便能缩短中断处理时的时间 中断中通过调用schedule_work(work)来通知内核线程,然后中断结束后,再去继续执行work对应的func函数 二、示例 当中断来了,立马调用schedule_work(work),然后退出。中断结束后,内核便会调用_work对应的func函数,最后才来读取按键值,上报按键值...

Golang 对MongoDB的操作简单封装

使用MongoDB的Go驱动库mgo,对MongoDB的操作做一下简单封装 初始化 操作没有用户权限的MongoDB var globalS *mgo.Session func init() { s, err := mgo.Dial(dialInfo) if err != nil { log.Fatalf("Create...

Linux内核学习笔记五——中断推后处理机制

一 中断硬件通过中断与操作系统进行通信,通过对硬件驱动程序处注册中断处理程序,快速响应硬件的中断。 硬件中断优先级很高,打断当前正在执行的程序。有两种情况: 硬件中断在中断处理程序中处理 硬件中断延后再进行处理 这个具体硬件相关,在中断处理程序中处理,打断了当前正在执行的程序;所有中断都将被屏蔽;如果占用时间太长不合适, 造成系统交互性,反应能力都会受到影...

hue解决timed out(code THRIFTSOCKET):None

报错栈: Traceback (most recent call last): File "/home/work/hue-3.10.0/desktop/libs/notebook/src/notebook/decorators.py", line 81, in decorator return func(*args, **kwargs) F...

MongoDB update数据语法

在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方便以后自己用到的时候查阅:注:在这篇文章及上篇文章内讲的语法介绍都是在mongodb shell环境内的,和真正运用语言编程(如java,php等)使用时,在...

Oracle中merge into的使用

该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动。 1,insert 和update是可选的 2,UPDATE 和INSERT 后面可以跟WHERE 子句 3,在ON条件中可以使用常量来insert 所有的行到目标表中,...