分享常用的svn批处理命令
svn在团队开发中的作用毋庸置疑,笔者也有数年的使用经验,深感其使用之便利。
然而,一些比较繁复和自动化的svn操作,可以使用批处理的方式使svn的使用更加强大。
分享一:多个离散svn目录的更新。
当不想更新整个根目录,或者没有整个根目录权限,而又需要频繁地更新时,要一个一个文件夹点进去更新操作,其繁复可想而知。我们可以编写一个简洁的.bat 文 件来执行这操作。如下:
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" 为本地SVN安装目录,注意的是需要加双引号,因为 C:/Program Files/ 这个路径包含空格。
/command:update 为SVN更新操作命令符。
/path:"F:/A/B/" 为需要更新的目录。
/closeonend:0 操作结束符。
上面的.bat执行了两个更新操作,会弹出两个svn更新界面。可以用以下的方式用一个SVN界面更新两个目录。
/path:"F:/A/B/*F:/C/D/E.txt" 如上所示,可用 * 将两个路径连起来即可实现一个界面多个目录的更新操作。
分享二:多个离散svn目录的提交。
最近策划和美术均抱怨编辑场景之后不知道要提交哪些文件,也不知道放在哪个目录,于是笔者在场景编辑器提供了一键提交的功能,自动检测需要提交的各个目录下的文件状态。具体实现如下。
如果是提交尚未纳入SVN版本控制的文件,首先要执行add命令,将以上的 /command:update 改为 /command:add 即可。再执行提交文件操作,将以上 /command:update 改为 /command:commit 即可。
无论是 add 还是commit ,执行时都是先弹出一个svn确认框,列出当前目录下需要add 或者commit的文件,如果某文件不需执行操作,可在文件列表前的勾选去掉,然后再按确定,所做操作才会提交到svn服务器。
还可以在 commit 时设置默认的提交日志,如:
/logmsg: 后面的字符串即为默认的日志信息,同时也可在SVN的确认提交界面再次修改。
分享三:隐藏 cmd 窗口。
该功能不属于svn 命令范畴,但既然说到了批处理,顺便也分享一下。实现很简单,只需在 .bat 文件的开始加上一段标识符即可,如下:
如此,即可不用每次执行.bat文件时都弹出那黑黑的窗口。
细细研究,其实批处理可实现的功能也是颇为强大的。