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 中引入的更改的一个关键特性是将工作副本元数据存储集中到一个位置。Subversion 1.7 工作副本在工作副本的根目录中只有一个 .svn 目录,而不是工作副本中每个目录都有一个 .svn 目录。该目录包括(除其他外)一个 SQLite 支持的数据库,其中包含 Subversion 需要的该工作副本的所有元数据。

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

升级工作副本

Subversion 1.7 对工作副本格式进行了重大更改。在以前的版本中,当执行写入操作时,Subversion 会自动将工作副本更新为新格式。但是,Subversion 1.7 将使其成为手动步骤。

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

upgradewc

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

即使在 cleanup 之后,升级过程也并不总是像应有的那样顺利运行,并且可能会很慢。我们建议您在升级之前提交对工作副本的所有更改(使用 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

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

这使您无需使用右键单击上下文菜单来执行这些常用命令,并真正节省了大量的鼠标点击次数。

日志对话框

日志对话框看起来没有太大变化。但在其核心,它获得了许多变化。最明显的可能是性能的提升。现在几乎可以立即完成显示和筛选数十万条条目的操作。

筛选功能也得到了很大的改进。特别是语法现在更类似于用户在 Web 搜索引擎中使用的语法。例如,筛选 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 获得了一些经常请求的功能
隐藏未更改的部分
可以隐藏不包含任何差异的部分,以便仅显示更改。这有助于更好地了解更改,而无需过多滚动。
拆分长行
过长的行很难查看,因为它们需要大量的横向滚动。一个新的选项允许在查看时将这些行拆分为多行,从而不再需要横向滚动。
标记单词
双击单词/变量/语句/... 会在整个文档中标记该单词。左侧的查看栏也指示了文档中可以找到相同单词/变量/语句的位置。这使得对更改的审查更加容易。

兼容性问题

本地客户端兼容性

有时使用多个不同的客户端(例如 TortoiseSVN、AnkhSVN 和 SVN 命令行客户端)访问 Subversion 工作副本。由于工作副本格式在此版本中已更改,因此 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 程序既是客户端是服务器。