Manuals

将你对工作副本的修改发送给版本库,称为 提交 修改。但在你提交之前要确保你的工作副本是最新的。你可以直接使用 TortoiseSVN 更新 ,或者,你可以先使用 TortoiseSVN 检查修改 看看哪些文件在本地或是服务器上已经有了改动。

如果你的工作副本是最新的,并且没有冲突,你就已经为提交做好准备了,选择你要提交的文件和/或文件夹,然后 TortoiseSVN 提交... .


提交对话框将显示每个被改动过的文件,包括新增的、删除的和未受控的文件。如果你不想改动被提交,只要将该文件的复选框的勾去掉就可以了。如果你要加入未受控的文件,只要勾选该文件把它加入提交列表就可以了。

快速选中或者取消选中所有版本控制的或修改过的文件类型,单击列表上方显示项目的项目链接。

关于颜色和基于项目状态覆盖相关的信息,请参考 “本地与远程状态”一节

那些被切换(switched)到不同版本库路径的项也用 (s) 标记来表示。当工作在分支上的时候你可能切换到某处,然后忘记切换回主干。这是你的警告信号!

提交文件还是文件夹?

当你提交文件时,提交对话框只显示你所提中的文件。当你提交文件夹中,提交对话框将自动选择有改动的文件。如果你忘记了你建立的一个新文件,提交文件夹将使你可以找到它。提交一个文件夹 并不 意味着每个文件都被标识为修改过的,它仅仅是通过帮你多做些事从而让你的生活更滋润一点。

在提交对话框中有很多未受控的文件

如果你认为提交对话框显示了太多的未受版本控制的文件(如编译器产生的文件或是编辑器的备份文件),有几种方法可以处理这种情况。你可以:

  • 将文件(或是通配符扩展)加入到设置页的排除列表中。这对每个工作副本都起作用。

  • 使用 TortoiseSVN 加入忽略列表 ,将文件加入 svn:ignore 列表。 这只对你设置了 svn:ignore 属性的路径有效。使用SVN属性对话框,你可以改变一个目录的 svn:ignore 属性。

  • 使用 TortoiseSVN 添加到忽视列表(全递归) 来增加文件到 svn:global-ignores 列表中去。这会影响你设置 svn:global-ignores 属性的目录和所有的子文件夹。

参考 “忽略文件和目录”一节 获得更多的信息。

在提交对话框中 双击 任何修改过的文件,将运行外部 diff 工具显示你做的改动。上下文菜单将给你更多的选项,请看屏幕截图。你可以从这里将文件拖动到另一个应用程序中,如文本编辑器或 IDE。

可以通过单击条目左侧的复选框来选中或不选该条目。对于目录,可以按下 Shift 键再 选择 就可以递归该动作。

在底部面板中显示的列是可定制的。如果你 右击 任何一列的头部,你就会看到一个上下文菜单,允许你选择哪一列要显示。还可以在鼠标移动到列边界时通过拖动手把来改变列的宽度。这些定制的内容都会被保留下来,下一次你会见到相同的列。

缺省情况下,当你成功提交修改后,你在这些文件上持有的锁会被自动释放。如果你需要保留锁,请确认选中检查框 保留锁 。此检查框的缺省状态从 Subversion 配置文件的 no_unlock 选项获取。参考 “常规设置”一节 以获得更多关于编辑 Subversion 配置文件的信息。

正在提交到Tag时警告

通常,提交是提交到主干或者分支,而不是标签。毕竟,标签应该固定而且不应该更改。

如果提交试图标识URL,TortoiseSVN 会先显示确认对话框来确保这是否真的需要被完成。因为绝大多数时候,这种提交是意外出现的。

然而,只有在版本库布局是推荐布局的情况下,这个检出才有效。这意味着它使用了名字 主干 分支 标签 来标记三个主要区域。以防设置不同,可以在设置对话框 “版本图设置”一节 中设置检测什么是标签/分支/主干(同样也称为分类参数

拖放

你可以将文件从别的地方拖动到提交对话框,只要工作副本是由同一版本库中检出就可以了。比如,你有一个很大的工作副本,要开好几个资源管理器窗口来查看层次中不同的文件夹。如果你要避免从顶级文件夹提交(冗长而缓慢的文件夹改动检查),你可以打开一个文件夹的提交对话框,然后将别的窗口中的项拖进去,可样就可以一次提交它们了。

你可以将未版本控制的文件拖到工作副本提交对话框中,它们就会被自动增加。

从提交对话框底部的列表中将文件拖拽到日志消息编辑框中,就能以文本格式将文件的路径插入编辑框中。当你想将本次提交相关的文件路径插入日志消息中时该功能非常有用。

修复外部改名

有时候文件不是用 Subversion 改名,于是它们在文件列表中作为丢失和未版本控制的文件出现。为了避免丢失历史,你需要通知Subversion。简单的选择老名称(丢失)和新名称(未版本控制),然后使用 右键菜单 修复移动 来指明这两个文件是改名关系。

修复外部复制

如果复制了一个文件,但不是通过 Subversion 的命令来做的,你可以修复此次复制来确保新文件不会丢失历史。只要简单的选择旧文件(正常或已修改)和新文件(无版本控制),然后使用 右键菜单 修复复制 来修复两个文件的复制关系。

确保输入描述你所提交的修改内容的日志信息。这可以帮你回顾做了什么,什么时候做的。信息的内容可长可短,许多项目规定了要包含的内容、使用的语言甚至是严格的格式。

你可以使用与电子邮件相似的约定,简单格式化日志消息。如果对 文本 采用这些样式,使用 *文本* 表示粗体, _文本_ 表示下划线, ^文本^ 表示斜体。


TortoiseSVN包含了一个拼写检查器帮助你正确地书写日志信息。对任何错误拼写的词都高亮显示。使用右键菜单可以获得修改建议。当然它不会知道 所有的 技术术语,所以有时一些拼写正确的词会被当作错误。但不用担心,你可以使用右键菜单将它们加入你的个人字典中。

日志消息窗口同时也含有文件名和函数自动完成的功能。它使用正则表达式从本次提交的(文本)文件中抽取类和函数的名称,以及被提交文件的文件名。如果你输入的单词与列表中的内容匹配(至少键入 3 个字符,或者按 Crtl+空格 ),就会显示一个下拉列表让你选择完整的名字。TortoiseSVN 支持的正则表达式位于 TortoiseSVN 安装文件夹下的 bin 文件夹中。你可以自定义匹配规则然后将其保存在文件 %APPDATA%\TortoiseSVN\autolist.txt 中。当然,在升级新版本的 TortoiseSVN 时你个人的自动匹配规则列表不会被覆盖。如果你不熟悉正则表达式,可以看一下介绍: http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F ,以及在线文档和教程: http://www.regular-expressions.info/

写出正确的匹配规则有点棘手,所以为了帮你写出合适的表达式,我们提供了一个对话框,你可以输入表达式,然后输入文件名来做个测试。要启动该对话框,在命令提示符中输入这个命名: TortoiseProc.exe /command:autotexttest

日志信息窗口里也同样包含了一个提交信息的片段工具。一旦你输入某个片段的快捷指令后他们就会出现在自动完成提示框内。你可以从提示框内选择一个片段这样整个片段的文字就会插入进来。TortoiseSVN自带的片段都被保存在TortoiseSVN安装目录下的 bin 文件夹内。你也可以在 %APPDATA%\TortoiseSVN\snippet.txt 里存储你自己的片段。 # 是注释符,换行符可以用反斜杠标记 \n \r 。你还可以通过 \\ 来输入反斜杠。

你可以重复使用先前键入的日志信息。只需要点击 最近信息 即可查看你为此工作副本键入的最近几条信息。

你可以从 TortoiseSVN 的设置窗口的 已保存数据 页中清除所有的保存消息,或者你可以在 最近信息 对话框中使用 Delete 键单独删除某条消息。

如果想要在日志信息中加入选中的文件路径,可以在编辑框中使用 右键菜单 粘贴文件名列表

另一个向日志消息中插入路径的方法是: 从文件列表中将文件拖拽到文本框中。

指定文件夹属性

有几个特殊的文件夹属性可用于帮助我们得到更多的对提交日志信息的格式以及拼写检查模块的控制。参考 “项目设置”一节 以了解详情。

与缺陷跟踪工具集成

如果你激活了一个bug跟踪系统,你可以在 Bug-ID / Issue-Nr: 文本框中设置一个或多个问题。多个问题应该用逗号分割。或者,如果你使用基于正则表达式的bug跟踪支持,只要将你的问题引用作为日志信息的一部分加入就可以了。详情请见 “与 BUG 跟踪系统/问题跟踪集成”一节

TortoiseSVN homepage