zoukankan      html  css  js  c++  java
  • 自动化工作之自动更新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==============
  • 相关阅读:
    Django ——Timezone 处理
    orm
    MySql系列之初识
    python并发编程之IO模型
    并发编程之协程
    GIL解释锁及进程池和线程池
    线程的互斥锁、递归锁及信号量
    守护、互斥锁、IPC和生产者消费者模型
    并发编程基础(进程)
    网络编程
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/4592063.html
Copyright © 2011-2022 走看看