附录 D. TortoiseSVN 操作

目录

D.1. TortoiseSVN 命令

因为所有的命令使用命令行参数控制,你可以使用特定的批处理脚本或从其它程序(例如你喜欢的文本编辑器)启动。

[重要]重要

请记住TortoiseSVN是一个GUI客户端,这个自动化指导为你展示了让TortoiseSVN对话框显示并收集客户输入,如果你希望编写不需要输入的脚本,你应该使用官方的Subversion命令行客户端。

D.1. TortoiseSVN 命令

TortoiseSVN的GUI程序叫做TortoiseProc.exe。所有的命令通过参数/command:abcd指定,其中abcd是必须的命令名。大多数此类命令至少需要一个路径参数,使用/path:"some\path"指定。在下面的命令表格中,命令引用的是/command:abcd参数,余下的代表了/path:"some\path"参数。

因为一些命令需要一个目标路径的列表(例如提交一些特定的文件),/path参数可以接收多个路径,使用*分割。

TortoiseSVN 使用临时文件在 shell 扩展和主程序之间传递多个参数。从 TortoiseSVN 1.5.0 开始,废弃/notempfile参数,不再需要增加此参数。

进度对话框用来显示提交,更新等命令,结束后通常需要用户点确认按钮才退出,这个可以通过检查对应的对话框选项中设置。但是使用那个设置会关闭进度窗口,无论你是使用批处理文件还是用TortoiseSVN右键菜单。

为了指定另外一个的配置文件,可以使用/configdir:"path\to\config\dir"参数,这将会覆盖默认的路径和注册表设置。

如果想在进度对话框执行完毕后自动关闭,而又不必设置永久性的参数,可以传递/closeonend参数。

下面的列表列出了所有可以使用TortoiseProc.exe访问的命令,就像上面的描述,必须使用/command:abcd的形式,在列表中,因为节省空间的关系省略了/command的前缀。

表 D.1. 有效命令及选项列表

命令描述
:about显示关于对话框。如果没有给命令也会显示。
:log打开日志对话框,路径指定了日志显示的文件或目录,另外还有三个选项可以设置: /startrev:xxx/endrev:xxx/strict
:checkout打开检出对话框,/path指定了目标路径,而/url制定了检出的URL。
:import打开导入对话框,路径制定了数据导入路径。
:update将工作副本的/path更新到HEAD,如果给定参数/rev,就会弹出一个对话框询问用户需要更新到哪个修订版本。为了防止指定修订版本号/rev:1234的对话框,需要选项/nonrecursive/ignoreexternals
:commit打开提交对话框,路经指定了目标路径或需要提交的文件列表,你也可以使用参数/logmsg给提交窗口传递预定义的日志信息,或者你不希望将日志传递给命令行,你也可以使用/logmsgfile:path,path指向了保存日志信息的文件。为了预先填入bug的ID(如果你设置了集成bug追踪属性),你可以使用/bugid:"the bug id here"完成这个任务。
:add/path的文件添加到版本控制 。
:revert恢复工作副本的本地修改,/path说明恢复哪些条目。
:cleanup清理中断和终止的操作,将工作副本的/path解锁。
:resolve/path指定文件的冲突标示为解决,如果给定/noquestion,解决不会向用户确认操作。
:repocreate/path创建一个版本库。
:switch打开选项对话框。路径参数指定目标目录。
:export/path的工作副本导出到另一个目录,如果/path指向另一个未版本控制目录,对话框会询问要导出到/path的URL。
:merge打开合并对话框,路经指定了目标目录,可以设置另外三个参数: /mergefrom:xxx/mergeto:xxx/fromurl:URL,这些值将会预先填入相关的字段。
:copy带来branch/tag对话框,/path是branch/tag在工作副本中的出处。
:settings打开设置对话框。
:remove从版本控制里移除/path中的文件。
:rename重命名/path的文件,会在对话框中询问新文件,为了防止一个步骤中询问相似文件,传递/noquestion
:diff启动TortoiseSVN设置的外置比较程序,/path指定了第一个文件,如果设置了/path2,比较程序会启动两个文件,如果省略/path2,比较程序会比较/path和它的BASE。
:conflicteditor打开TortoiseSVN设置的冲突工具,在/path中需要设置冲突文件的正确文件。
:relocate打开重定位对话框,/path指定了重定位的工作副本路径。
:help打开帮助文件
:repostatus打开为修改检出对话框,路经指定了工作副本目录。
:repobrowser打开版本库浏览对话框,URL为工作副本/path指向的或/path直接指出的,另外一个选项是/rev:xxx,可以用来指定要显示的修订版本号,如果省略/rev:xxx,缺省是HEAD。
:ignore/path中的对象加入到忽略列表,也就是将这些文件添加到svn:ignore属性。
:blame打开/path指定文件的追溯对话框,如果设置了startrevendrev,对话框询问追溯范围的对话框不会显示,如果设置了/line:nnn,TortoiseBlame会打开特定文件的某一行。
:cat/path指定的工作副本或URL的文件保存到/savepath:path,修订版本号在/revision:xxx,这样可以得到特定修订版本的文件。
:createpatch创建/path下的补丁文件。
:revisiongraph显示/path目录下的版本变化图。
:lockLocks a file or all files in a directory. The 'lock' dialog is shown so the user can enter a comment for the lock. /path
:unlockUnlocks a file or all files in a directory.. /path
:rebuildiconcache重建windows的图标缓存,只有windows的图标缓存出了问题才需要这样做,一个副作用就是(不可避免)桌面的图标会重新组织。/noquestion
:properties显示 /path 给出的路径之属性对话框。

例子(必须在一行输入):

TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"test log message" /closeonend

TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend

TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
                 /startrev:50 /endrev:60 /closeonend