[转]关于SVN的操作批处理示例
为了一句话:不要动手做机器能够做的事情.
天天工作用svn,更新啥的打开目录啥的动作天天在重复.每次写些命令也蛮无聊的,不说了,看下面:
@echo off
rem 显示部分
@echo 注 意 事 项
@echo ************************************************************************
@echo 可以精简并通过计划任务来制定自动执行,运行前请检查下面目录:
@echo.
@echo 1.svn_bin 为安装TortoiseSVN客户端的可执行程序目录
@echo 2.svn_work 为更新项目文件的目录
@echo.
@echo WIN7或WINVista或WIN2008的用户请用管理员身份运行
@echo ************************************************************************ rem 路径变量,请在此处按实际修改,最后面不要带斜杠
@set svn_bin=D:\Program Files\TortoiseSVN\bin
@set svn_work=E:\SVN rem 判断可执行文件及项目文件目录是否正确
@if not exist "%svn_bin%\TortoiseProc.exe" (
echo.
echo error: 请确认TortoiseSVN客户端目录正确?
echo 目前定义的是:%svn_bin%
echo.
pause & exit 1
)
if not exist "%svn_work%\.svn" (
echo.
echo error: 请确认SVN项目文件目录正确?
echo 目前定义的是:%svn_bin%
echo.
pause & exit 2
) rem 显示操作菜单
:menu
echo.
echo ☆☆☆请选择数字后按回车☆☆☆
echo.
echo 1.SVN全目录更新
echo.
echo 2.打开某某项目SVN(QA专用)
echo.
echo 3.打开某某项目网站SVN (QA专用)
echo.
echo 4.SVN全目录日志
echo.
echo 0.退出
echo.
set choice=
set /p choice=请选择对应数字输入:
if not "%choice%"=="" choice=%choice:~0,1%
if /i "%choice%"=="1" goto start1
if /i "%choice%"=="2" goto start2
if /i "%choice%"=="3" goto start3
if /i "%choice%"=="4" goto start4
if /i "%choice%"=="0" goto exit
echo 选择无效,请重新输入...
echo.
goto :menu :start1
cls
echo SVN目录更新
echo.
rem 更新snv
"%svn_bin%"\TortoiseProc.exe/command:update /path:"%svn_work%" /notempfile /closeonend:4
echo 已完成,返回主菜单
goto :menu :start2
cls
echo 打开SVN某某项目目录
echo.
rem 打开某某项目,固定写死
explorer /e,"%svn_work%\Testing\Videocomm"
goto :menu :start3
cls
echo 打开SVN某某项目网站目录
echo.
explorer /e,"%svn_work%\Testing\Trunk\"
goto :menu :start4
cls
echo 打开SVN全目录日志
echo.
"%svn_bin%"\TortoiseProc.exe/command:log /path:"%svn_work%" /notempfile /closeonend:0
goto :menu
这中间是随便写了几个操作,可根据实际需要自行增减,代码行应该可以精简,哪位同学闲来无事的可以试试
附svn的一些命令行说明
| 命令 | 描述 |
|---|---|
| :about | 显示关于对话框。如果没有给命令也会显示。 |
| :log | 打开日志对话框,/path 指定了显示日志的文件或目录,另外还有三个选项可以设置: /startrev:xxx、/endrev:xxx和/strict |
| :checkout | 打开检出对话框,/path指定了目标路径,而/url制定了检出的URL。 |
| :import | 打开导入对话框,/path 指定了数据导入路径。 |
| :update | 将工作副本的/path更新到HEAD,如果给定参数/rev,就会弹出一个对话框询问用户需要更新到哪个修订版本。为了防止指定修订版本号/rev:1234的对话框,需要选项/nonrecursive和/ignoreexternals。 |
| :commit | 打开提交对话框,/path 指定了目标路径或需要提交的文件列表,你也可以使用参数 /logmsg 给提交窗口传递预定义的日志信息,或者你不希望将日志传递给命令行,你也可以使用 /logmsgfile:path,path 指向了保存日志信息的文件。为了预先填入bug的ID(如果你设置了集成bug追踪属性),你可以使用/bugid:"the bug id here"完成这个任务。 |
| :add | 将/path的文件添加到版本控制 。 |
| :revert | 恢复工作副本的本地修改,/path说明恢复哪些条目。 |
| :cleanup | 清理中断和终止的操作,将工作副本的/path解锁。 |
| :resolve | 将/path指定文件的冲突标示为解决,如果给定/noquestion,解决不会向用户确认操作。 |
| :repocreate | 在/path创建一个版本库。 |
| :switch | 打开选项对话框。/path 指定目标目录。 |
| :export | 将/path的工作副本导出到另一个目录,如果/path指向另一个未版本控制目录,对话框会询问要导出到/path的URL。 |
| :merge | Opens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx. These pre-fill the relevant fields in the merge dialog. |
| :mergeall | Opens the merge all dialog. The /path specifies the target directory. |
| :copy | Brings up the branch/tag dialog. The /path is the working copy to branch/tag from. And the /url is the target URL. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where path points to a file containing the log message. |
| :settings | 打开设置对话框。 |
| :remove | 从版本控制里移除/path中的文件。 |
| :rename | 重命名/path的文件,会在对话框中询问新文件,为了防止一个步骤中询问相似文件,传递/noquestion。 |
| :diff | Starts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx. If /blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions. |
| :showcompare |
Depending on the URLs and revisions to compare, this either shows a unified diff (if the option The options |
| :conflicteditor | Starts the conflict editor specified in the TortoiseSVN settings with the correct files for the conflicted file in /path. |
| :relocate | 打开重定位对话框,/path指定了重定位的工作副本路径。 |
| :help | 打开帮助文件 |
| :repostatus | 打开为修改检出对话框,/path 指定了工作副本目录。 |
| :repobrowser | Starts the repository browser dialog, pointing to the URL of the working copy given in /path or /path points directly to an URL. An additional option /rev:xxx can be used to specify the revision which the repository browser should show. If the /rev:xxx is omitted, it defaults to HEAD. If /path points to an URL, the /projectpropertiespath:path/to/wc specifies the path from where to read and use the project properties. |
| :ignore | 将/path中的对象加入到忽略列表,也就是将这些文件添加到 svn:ignore 属性。 |
| :blame |
为 如果设置了 如果设置了 也支持 |
| :cat | 将/path指定的工作副本或URL的文件保存到/savepath:path,修订版本号在/revision:xxx,这样可以得到特定修订版本的文件。 |
| :createpatch | 创建/path下的补丁文件。 |
| :revisiongraph | 显示/path目录下的版本变化图。 |
| :lock | Locks a file or all files in a directory given in /path. The 'lock' dialog is shown so the user can enter a comment for the lock. |
| :unlock | Unlocks a file or all files in a directory given in /path. |
| :rebuildiconcache | Rebuilds the windows icon cache. Only use this in case the windows icons are corrupted. A side effect of this (which can't be avoided) is that the icons on the desktop get rearranged. To suppress the message box, pass /noquestion. |
| :properties | 显示 /path 给出的路径之属性对话框。 |
另外:
如果想在进度对话框执行完毕后自动关闭,而又不必设置永久性的参数,可以传递/closeonend参数。
/closeonend:0 不自动关闭对话框
/closeonend:1 如果没发生错误则自动关闭对话框
/closeonend:2 如果没发生错误和冲突则自动关闭对话框
/closeonend:3如果没有错误、冲突和合并,会自动关闭
/closeonend:4如果没有错误、冲突和合并,会自动关闭
下面的列表列出了所有可以使用TortoiseProc.exe访问的命令,就像上面的描述,必须使用/command:abcd的形式,在列表中,因为节省空间的关系省略了/command的前缀。
示例:
Examples (which should be entered on one line):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0 TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0 TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0
[转]关于SVN的操作批处理示例的更多相关文章
- 关于SVN的操作批处理示例
关于SVN的操作批处理示例 为了一句话:不要动手做机器能够做的事情. 天天工作用svn,更新啥的打开目录啥的动作天天在重复.每次写些命令也蛮无聊的,不说了,看下面: 1 @echo off 2 rem ...
- SVN客户端操作
版权声明:本文为博主原创文章,转载请注明原文出处. https://blog.csdn.net/zzfenglin/article/details/50937119 下面我们来了解一下SVN客户端 ...
- SVN基础操作
SVN基础操作 安装 #大多数Linux版本自带svn svn --version #如果没有安装可用yum安装 yum install subversion 生命周期 创建版本库 检出 更新 执行变 ...
- Python操作SQLServer示例(转)
转自:http://www.cnblogs.com/lrzy/p/4346781.html 本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数 ...
- 转:Python操作SQLServer示例
注:此文也是转载,2018年1月发现此文阅读量过万,略感不安.当时只是为了自己存档学习,未粘此文的原始连接.如有侵权,通过即删除,敬请谅解! 从网上找的,估计原文是:Python操作SQLServer ...
- C#操作MSMQ示例
C#操作MSMQ示例,示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- Python操作SQLServer示例
本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'), ...
- springLdap 操作ldap示例(增删改查)
转自:http://blog.csdn.net/sundenskyqq/article/details/9002440 这部分的示例网上的确有很多,但是个人在查找的过程中还是感到不够满意,所以就自己总 ...
- Linux下 svn相关操作
Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...
随机推荐
- html图标插件
https://bitbucket.org/cleonello/jqplot/downloads/ 下载地址 http://www.cnblogs.com/yaozhenfa/p/jqplot-pie ...
- WinForm跨窗体传值
1.另一窗体建公共变量listdataRow public List<DataGridViewRow> listdataRow = new List<DataGridViewRow& ...
- 最全的linux命令大全,shell运维手册
shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file ...
- C#动态规划查找两个字符串最大子串
//动态规划查找两个字符串最大子串 public static string lcs(string word1, string word2) { ...
- Pyqt 基础功能
总结Pyqt的基础知识 1. Pyqt 设置禁止最大化及禁止拖拽窗口大小 # PyQT禁止窗口最大化按钮: self.setWindowFlags(QtCore.Qt.WindowMinimizeB ...
- ExtJS基础知识总结:自定义日历和ComboBox控件(二)
概述 1.ExtJS 5不支持日期选择框中只选择年月,为了满足ExtJs5可以实现选择年月的功能,查询网上资料,整理出来了相应的处理方式,最终实现的效果如下图: 2.ExtJS 控件丰富,如果需要实现 ...
- 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系
也调了快一天,死活找不到窍门. MODEL, STORE,VIEW的调置测试了很久,试了N种方法,不得其果. 最后,试着在APPLICATION里加入CONTROLLER, 在CONTROLLER里加 ...
- 【DWR系列03】- DWR主要类详解
img { border: 1px solid black } 一.简介 首先应该了解这个jar包主要的类,了解了类,就了解了DWR.DWR的在线javadoc:http://directwebrem ...
- AOJ 0118 Property Distribution【DFS】
题意:在H * W的矩形果园里有苹果.梨.蜜柑三种果树, 相邻(上下左右)的同种果树属于同一个区域,给出果园的果树分布,求总共有多少个区域. 输入:多组数据,每组数据第一行为两个整数H,W(H < ...
- 利用C# Winform做Windows系统任务栏
最近公司做一个考试系统,需要一个答题栏,要求:占用屏幕上方一部分区域,而且始终置顶,当其他窗口最大化时"答题栏"始终置前并且不遮挡最大化窗口的任何部分!就像windows任务栏一样 ...