TortoiseSVN Logo

TortoiseSVN 1.7 的新功能

广告

TortoiseSVN 1.7 是所有先前 TortoiseSVN 版本的超集,被认为是当前稳定且“最佳”的版本。早期版本中的所有内容也包含在 1.7 中,但 1.7 包含早期版本中不存在的功能和错误修复。

TortoiseSVN 1.7 停止支持 Windows 2000。它需要至少 Windows XP Service Pack 3 才能运行。如果您仍在使用 Windows 2000 或没有 Service Pack 3 的 Windows XP,则必须升级操作系统或继续使用 TortoiseSVN 1.6。

此页面仅描述主要更改。有关完整更改列表,您可以查看我们的 提交日志.

工作副本元数据存储改进

Subversion 1.7 对 Subversion 的工作副本元数据管理系统进行了彻底的重写,代号为 WC-NG。您可以在 Subversion 1.7 版本说明 中了解更多有关此新格式的信息。

集中式元数据存储

Subversion 1.7 版本引入的一个关键特性是将工作副本元数据存储集中到一个位置。与之前每个工作副本目录下都包含一个 `.svn` 目录不同,Subversion 1.7 的工作副本只有一个 `.svn` 目录,位于工作副本的根目录。这个目录包含(除其他外)一个 SQLite 支持的数据库,其中包含 Subversion 为该工作副本所需的所有元数据。

尽管数据以结构化格式存储,但数据之间的关系很复杂。我们强烈建议外部工具不要修改此数据库中保存的数据,因为这种修改很可能会导致工作副本损坏。

升级工作副本

Subversion 1.7 对工作副本格式进行了重大更改。在之前的版本中,Subversion 会在执行写入操作时自动将工作副本更新为新格式。然而,Subversion 1.7 将此步骤改为手动操作。

在使用 TortoiseSVN 1.7 访问现有工作副本之前,您必须先升级工作副本的格式。如果您右键单击旧的工作副本,TortoiseSVN 的上下文菜单中只会显示一个命令:`升级工作副本`。

upgradewc

为了安全起见,您应该使用 1.7 之前的 SVN 客户端对所有工作副本运行 `清理` 操作,因为如果工作副本处于不一致状态,升级过程可能会失败。最好在安装新版本的 TortoiseSVN 之前运行清理操作。

即使在清理之后,升级过程也不总是像预期的那样顺利,而且速度可能很慢。我们建议您在升级之前将所有更改提交到工作副本(使用 1.7 之前的客户端)。如果升级因任何原因失败,只需重新检出即可。

升级工作副本后,旧的 SVN 客户端将无法访问这些工作副本。因此,请确保您更新所有 SVN 客户端(如果您不仅使用 TortoiseSVN)。

为了方便起见,TortoiseSVN 在 `TortoiseSVN/bin` 目录中包含了 1.7 SVN 命令行客户端的副本。

x64 安装程序

在之前的版本中,在 x64 操作系统上安装 TortoiseSVN 的用户还必须单独安装 32 位版本的 TortoiseSVN,才能获得其针对 32 位应用程序的功能。

TortoiseSVN 1.7 在其 x64 安装程序中包含了所需的 32 位部分。无需在 x64 操作系统上安装 32 位版本的 TortoiseSVN。

属性对话框

处理 SVN 属性现在变得更加容易。您想要或需要设置的大多数工作副本属性现在可以设置和修改,而无需知道确切的格式。TortoiseSVN 1.7 为大多数已知属性提供了自定义对话框。

propertydlgexternals propertydlgbugtraq

上面的截图显示了 `svn:externals` 和所有 `bugtraq:` 属性的新属性对话框。TortoiseSVN 1.7 中还有更多可用的自定义属性对话框。请查看 文档,了解所有这些对话框。

Windows 7 库

Windows 7 中的资源管理器引入了库,库是用于存放具有共同特征的文件和文件夹的容器。

TortoiseSVN 1.7 为 SVN 工作副本创建了一种新的库类型。

win7svnlib

如果您将工作副本的根文件夹放在这个新的库文件夹中,您将在资源管理器的顶部看到四个按钮,它们执行最常用的命令:提交、更新、检查修改和显示日志。

这使您免于使用右键单击上下文菜单来执行这些常用的命令,并且确实节省了大量的鼠标点击。

日志对话框

日志对话框的外观并没有太大变化。但其核心获得了许多改进。最明显的是性能的提升。显示和过滤数十万条条目现在几乎可以立即完成。

过滤功能也得到了很大的改进。特别是语法现在更类似于用户从网络搜索引擎中习惯的语法。例如,过滤 Alice Bob -Eve 将显示包含 Alice 和 Bob 但不包含 Eve 的字符串。有关更详细的示例,请参阅 文档

日志对话框的另一个功能是它会用红色突出显示过滤匹配项。这样,更容易找出日志条目中的哪一部分与过滤字符串匹配。

logfilter

如果日志消息中提到了修订版本,那么日志对话框会将这些修订版本变成链接。单击这些链接将自动在日志对话框中选择提到的修订版本。

loglinks

版本图

修订版本图也得到了很多改进。特别是启动时间大大减少,这对于非常大的存储库来说最为明显。

由于修订版本图可能非常大,将它们保存为位图图像会导致非常大的图像。虽然可以将图形保存为 wmf 文件,但这种格式只能在 Windows 上使用。当然,您无法在 Web 浏览器中显示它。

1.7 版本中的修订版本图可以将图形保存为 SVG 格式。大多数 Web 浏览器都可以原生显示这种格式,甚至最新的 Internet Explorer 也能够直接显示这些文件。

如果您的浏览器支持这种格式,您可以通过 此链接 查看 TortoiseSVN 修订版本图。

分支/标签对话框

在创建分支或标签时,svn:externals 属性会按照原样进行分支/标记,通常指向另一个仓库的 HEAD 版本,甚至指向同一个仓库但路径不同的版本。

如果 svn:externals 没有也进行标记,那么从创建的标签进行后续检出时,会获取外部的 HEAD 版本,如果外部有额外的提交,这会导致构建不一致。

分支/标签对话框现在允许您也对外部进行标记

branchtagexternals

如果在创建分支或标签时将外部设置为显式版本,TortoiseSVN 会自动更改 svn:externals 属性。当从仓库的 HEAD 或特定版本创建分支/标签时,TortoiseSVN 会先创建分支/标签,然后调整属性。这将为每个属性创建额外的提交。当从工作副本创建分支/标签时,会先修改属性,然后创建分支/标签,最后将属性更改回原始值。

提交对话框

提交对话框也进行了一些 UI 更改。您会注意到,在要提交的项目列表上方新增了链接标签。这些链接用于选中或取消选中特定项目。使用这些链接标签,完成此任务比使用早期版本中的复选框要容易得多。

commitdlg

提交对话框现在还会显示一个通知,如果 TortoiseSVN 有更新可用,即如果您没有安装最新版本。这取代了以前版本中弹出的单独对话框,因为许多用户对该弹出对话框感到厌烦。

upgradecheck

存储库浏览器

仓库浏览器显示包含 svn:externals 属性的文件夹。您也可以浏览这些文件夹,即使它们位于不同的仓库中。外部文件夹用红色箭头标记,以区别于仓库中的普通文件夹。

repobrowserexternals

现在还可以直接从仓库浏览器编辑文件。这使得对文件进行快速更改变得容易,无需检出整个工作副本。

由于大量缓存和后台预取信息,1.7 版本中启动代码库浏览器并浏览其本身的速度也快了很多。

稀疏检出

如果您只需要一个包含项目中少量文件夹的工作副本,则需要进行所谓的“稀疏检出”。在以前的版本中,这是通过多个步骤完成的,首先以空深度检出父文件夹,然后逐个更新所需的文件夹,并设置所需的深度。

现在这变得容易多了:在检出对话框中有一个“选择项目...”按钮,它会打开一个新的对话框,您可以在其中轻松地选中所需的文件夹和文件,并取消选中不需要的文件夹和文件。

sparsecheckout

选择完所有内容后,检出将处理其余工作,您将获得所需稀疏工作副本 - 所有这些都只需一步即可完成。

TortoiseMerge

TortoiseMerge 获得了一些经常被请求的功能
隐藏未更改的部分
不包含任何差异的部分可以隐藏,以便只显示更改。这有助于更好地了解更改,而无需太多滚动。
拆分长行
过长的行很难查看,因为它们需要大量横向滚动。一个新的选项允许在查看时将这些行拆分为多行,因此不再需要横向滚动。
标记单词
双击一个单词/变量/语句/... 会在整个文档中标记该单词。左侧的视图栏还会指示在文档中可以找到相同单词/变量/语句的位置。这使得更改的审查变得更加容易。

兼容性问题

本地客户端兼容性

Subversion 工作副本有时使用多个不同的客户端访问,例如 TortoiseSVN、AnkhSVN 和 SVN 命令行客户端。由于工作副本格式在此版本中已更改,因此 1.7 客户端无法访问早期工作副本,除非先对其进行升级。1.7 之前的客户端根本无法访问 1.7 工作副本,并且没有降级选项。

迁移到 1.7 工作副本必须被视为单向操作。如果您需要在同一个工作副本上使用多个客户端,请确保您可以在升级工作副本之前更新所有客户端。

客户端服务器兼容性

较旧的客户端和服务器与 1.7 服务器和客户端透明地互操作。也就是说,您可以将 1.7 客户端与较旧的服务器一起使用,也可以将 1.7 服务器与较旧的客户端一起使用。但是,某些新的 1.7 功能可能无法使用,除非客户端和服务器都是最新版本。在某些情况下,新功能将起作用,但如果客户端是新的而服务器是旧的,则运行效率会降低。

新功能兼容性表

新功能最低客户端1最低服务器最低仓库备注
HTTPv21.71.7任何旧版客户端/服务器组合的排列将继续在 1.7 之前的功能级别上运行。
WC-NG1.7任何任何1.6 工作副本不能与 1.7 一起使用,并且不会自动升级到新的 1.7 格式。
1提醒:使用file://仓库访问方法时,Subversion 程序既是客户端也是服务器。