TortoiseSVN 1.5 的新功能
详情如下所述。
TortoiseSVN 1.5 是之前所有 TortoiseSVN 版本的超集,并且被认为是当前稳定和“最佳”版本。1.0.x、1.1.x、1.2.x、1.3.x 或 1.4.x 中的任何内容也包含在 1.5 中,但 1.5 包含早期版本中没有的功能和错误修复。
详情如下所述。
TortoiseSVN 1.5 是之前所有 TortoiseSVN 版本的超集,并且被认为是当前稳定和“最佳”版本。1.0.x、1.1.x、1.2.x、1.3.x 或 1.4.x 中的任何内容也包含在 1.5 中,但 1.5 包含早期版本中没有的功能和错误修复。
较旧的客户端和服务器可以与 1.5 服务器和客户端透明地互操作。当然,除非客户端和服务器都是最新版本,否则某些 1.5 的新功能可能不可用。请参阅下表,了解哪些功能需要哪些版本
新功能 | 最低客户端版本 | 最低服务器版本 | 最低仓库版本 | 注释 |
---|---|---|---|---|
合并跟踪 | 1.5 | 1.5 | 1.5 | |
Cyrus SASL 对 svn:// 仓库访问的支持 | 任何版本*,1.5 | 任何版本*,1.5 | 任何版本 | *有限制,仅支持 ANONYMOUS 和 CRAM-MD5 |
所有其他功能都独立于服务器版本,可以不受任何限制地使用。
有关更详细的兼容性表格,请参阅 Subversion 发行说明。
由于对工作副本库进行了一些改进,工作副本格式的版本号已递增。这意味着早于 1.5 的 Subversion 客户端将无法使用 Subversion 1.5 生成的工作副本。同样,仓库格式也已更改,这意味着通常直接访问仓库的 1.5 之前的 Subversion 工具(例如 svnserve
、mod_dav_svn
、svnadmin
)将无法读取最初由 Subversion 1.5 创建的仓库。
警告: 如果 Subversion 1.5 客户端遇到 1.5 之前的工作副本,它会在接触到它时自动升级工作副本格式,使其无法被较旧的 Subversion 客户端读取。如果您在机器上使用多个版本的 Subversion,则需要小心在哪个工作副本中使用哪个版本,以避免意外升级工作副本格式。但是,此“自动升级”功能不会在新仓库格式中发生。
请查看 Subversion FAQ 中关于工作副本格式更改的内容。
Subversion 1.5.0 中的合并跟踪在功能上大致等同于 svnmerge.py,它记录和使用合并历史来避免 重复合并 问题的常见情况,并允许选择性合并更改。它通过属性公开合并历史,并允许仓库转储/加载(包括重新创建合并历史索引的能力)。
注意:某些合并跟踪功能不能用于由 1.5.x 之前版本的服务器提供的仓库。
在分支上工作时,Subversion 现在跟踪每个已合并的版本。这使得合并更改(例如,从主干合并更改)变得更容易,因为可以始终合并整个版本范围,而不会有两次合并同一版本的风险。Subversion 将在执行合并时自动忽略已合并的版本。
当从合并对话框显示日志以查找要合并的版本时,TortoiseSVN 会将已合并的版本灰显作为视觉提示。如果选择了灰显的版本,Subversion 不会再次合并该版本,因为它已被合并。
为了阻止合并某个版本,TortoiseSVN 在合并对话框中提供了一个名为“仅记录”的按钮。这将告诉 Subversion 该版本已被合并,而无需执行合并本身。
当使用日志对话框检查版本时,发生合并的版本的消息通常不是很有用。大多数人以“从 /branches/ZZZ 合并了版本 XXX 到 YYY”或类似形式编写日志消息。但是,在检查文件夹/文件的日志时,真正有趣的是所有已合并版本的日志消息。
如果需要,TortoiseSVN 可以向您显示这些日志消息。日志对话框有一个复选框,激活后将获取所有已合并版本的日志消息。已合并版本的日志条目会稍微缩进显示。
许多用户拥有非常大的树结构,他们只想检出某些部分。对于包含许多子文件夹的文件夹,可能不需要某些子文件夹。
TortoiseSVN 为用户提供了一个组合框来选择检出的深度
检出的深度会被记住,以便稍后的更新将遵守该深度,而不会再次获取所有内容。
svnserve
的支持在 Subversion 1.5 中,svnserve 可以使用 SASL(简单身份验证和安全层)进行身份验证和数据加密。TortoiseSVN 也实现了 SASL。以下 SASL 身份验证方法在 TortoiseSVN 1.5 中可用
SASL 还在其中一些方法中提供数据加密,因此您可以在通过互联网传输数据时保护数据安全。使用 SASL 保护连接应该比设置 SSH 基础设施更容易。
有时您在工作副本中同时处理几个不同的问题,并且很难跟踪哪些文件涉及哪些更改。TortoiseSVN 现在允许您将文件分组到逻辑变更列表中。这些变更列表会出现在提交对话框和检查修改对话框中。除了提供视觉指示外,您还可以选择要提交的组。
TortoiseSVN 还提供了一个名为 ignore-on-commit 的特殊变更列表。属于该变更列表的文件在提交对话框中不会被选中。如果您有一个必须保持版本控制但又不想提交其修改的文件,这将很有帮助。
从仓库获取日志信息可能需要很长时间,特别是对于具有数千个版本的仓库,或者如果仓库不在快速连接上。
TortoiseSVN 1.5 可以将日志条目缓存在本地驱动器上。只有本地缓存中尚不存在的条目才会从仓库中获取。
日志缓存不仅提高了日志对话框的性能,还提高了版本图的性能。
仓库浏览器已完全重写,现在更像 Windows 资源管理器。它有两个窗格,左侧是树视图,右侧是文件/文件夹列表。
重写的一部分还包括在显示非常大的目录时的性能改进。
还可以将文件/文件夹从仓库浏览器直接拖到资源管理器,作为保存/导出这些文件/文件夹的快速方法。
自从上一个版本以来,版本图发生了巨大的变化。除了在可用时使用日志缓存外,在分析日志数据时也更快。
图表右上角的一个小窗口显示了整个图表的概览。
新的版本图有更多选项来调整输出。例如,图表的方向、节点在图表中的排列方式或应完全过滤掉哪些节点/路径/URL。
TortoiseSVN 允许在某些操作之前和之后执行客户端脚本。可用的钩子是
SubWCRev 工具现在具有 COM 接口,可以从脚本语言轻松访问。这使得将版本信息嵌入到例如 Microsoft Word 文档中成为可能。
如果您正在使用其他 Tortoise 客户端(如 TortoiseCVS),您可能知道 Windows 中覆盖图标槽位有限的问题。同时安装 TortoiseSVN 和 TortoiseCVS 后,某些覆盖图标将不再显示。这是因为 Windows 只有大约 12 个可用于覆盖图标的槽位,并且同时安装这两个应用程序后,该限制已用尽。
为了解决这个问题,我们为所有 Tortoise 客户端实现了一个通用的覆盖图标处理程序。使用此处理程序,所有 Tortoise 客户端将显示相同的覆盖图标并使用相同的覆盖图标槽位。这样,我们就不会再轻易达到 Windows 的限制。
TortoiseSVN 1.5.x 和 TortoiseCVS 不稳定版本已经使用了这个新的覆盖图标处理程序。
由于这个共享覆盖图标的新覆盖图标处理程序,TortoiseSVN 获得了两个新的覆盖图标:现在未版本化和忽略的文件也有了覆盖图标。