有时您需要了解分支和标签是从主干的哪个位置创建的,而查看此类信息的理想方式是作为图形或树状结构。这时您需要使用 →
此命令会分析修订历史记录,并尝试创建一个树,显示复制操作发生的点以及分支/标签被删除的时间。
为了生成图形,TortoiseSVN 必须从存储库根目录获取所有日志消息。不用说,即使对于只有几千个修订版本的存储库,这可能需要几分钟,具体取决于服务器速度、网络带宽等。如果您尝试使用像 Apache 项目这样的项目,该项目目前有超过 500,000 个修订版本,您可能需要等待一段时间。
好消息是,如果您使用日志缓存,您只需要经历一次这种延迟。之后,日志数据将保存在本地。日志缓存已在 TortoiseSVN 的设置中启用。
每个修订图节点代表存储库中的一个修订版本,在该版本中,您正在查看的树中发生了某些更改。不同类型的节点可以通过形状和颜色来区分。形状是固定的,但颜色可以通过
→ 来设置。已添加或通过复制另一个文件/文件夹创建的项目使用圆角矩形显示。默认颜色为绿色。标签和主干被视为特殊情况,并使用不同的阴影,具体取决于
→ 。已删除的项目(例如不再需要的分支)使用八边形(角被切掉的矩形)显示。默认颜色为红色。
已重命名的项目也使用八边形显示,但默认颜色为蓝色。
图形通常仅限于显示分支点,但能够查看每个分支的相应 HEAD 修订版本通常很有用。如果您选择 显示 HEAD 修订版本,每个 HEAD 修订版本节点将显示为椭圆形。请注意,这里的 HEAD 指的是在该路径上提交的最后一个修订版本,而不是存储库的 HEAD 修订版本。
如果您从工作副本调用了修订图,您可以选择使用 显示 WC 修订版本 在图形上显示 BASE 修订版本,这将用粗体轮廓标记 BASE 节点。
如果您从工作副本调用了修订图,您可以选择显示一个额外的节点,该节点代表您修改后的工作副本,使用 显示 WC 修改。默认情况下,这是一个带有粗体红色轮廓的椭圆形节点。
所有其他项目都使用普通矩形显示。
请注意,默认情况下,图表仅显示添加、复制或删除项目的点。显示项目的每个修订版本将为非平凡情况生成非常大的图表。如果您确实想查看所有进行了更改的修订版本,则可以在视图菜单和工具栏中找到此选项。
默认视图(关闭分组)将节点放置在垂直位置严格按照修订顺序排列的位置,因此您可以直观地了解操作顺序。当两个节点位于同一列时,顺序非常明显。当两个节点位于相邻列时,偏移量要小得多,因为无需阻止节点重叠,因此顺序不太明显。这种优化对于将复杂图表保持在合理大小是必要的。请注意,此排序使用节点在较旧侧的边缘作为参考,即当图表显示最旧的节点位于底部时,节点的底部边缘。参考边缘很重要,因为节点形状的高度并不完全相同。
由于修订图通常非常复杂,因此可以使用许多功能来调整您想要的视图。这些功能可以在视图菜单和工具栏中找到。
默认行为(关闭分组)将所有行严格按修订排序。因此,具有稀疏提交的长期分支将占用一整列,仅用于少量更改,并且图表变得非常宽。
此模式按分支对更改进行分组,因此没有全局修订顺序:分支上的连续修订将显示在(通常)连续的行中。但是,子分支以这样一种方式排列,即后面的分支将显示在前面分支的同一列上方,以保持图表精简。因此,给定行可能包含来自不同修订的更改。
通常,图表显示最旧的修订版本位于底部,树向上生长。使用此选项改为从顶部向下生长。
当图表被分成几个较小的树时,树可能会以自然修订顺序出现,或者在窗口底部对齐,具体取决于您是否使用分组分支选项。使用此选项改为将所有树从顶部向下生长。
此选项通常处于启用状态,可避免显示包含大量交叉线的混乱图形。但是,这也会导致布局列出现在不太合理的位置,例如以对角线而不是列的形式出现,并且图形可能需要更大的区域来绘制。如果出现问题,您可以从 视图 菜单中禁用此选项。
较长的路径名称会占用大量空间,并使节点框变得非常大。使用此选项仅显示路径的更改部分,用点号替换公共部分。例如,如果您从 /trunk/doc/html
创建分支 /branches/1.2.x/doc/html
,则该分支可以以紧凑形式显示为 /branches/1.2.x/..
,因为最后两个级别 doc
和 html
没有更改。
此选项会按照您的预期显示每个修订版,其中包含您正在绘制的树中发生更改的内容。对于较长的历史记录,这可能会产生非常庞大的图形。
这将确保始终在图形上显示每个分支上的最新修订版。
创建分支/标签时,默认行为是将分支显示为从上次更改节点开始。严格来说,这是不准确的,因为分支通常是从当前 HEAD 创建的,而不是从特定修订版创建的。因此,可以显示用于创建副本的更准确(但不太有用)的修订版。请注意,此修订版可能比源分支的 HEAD 修订版更新。
当项目包含许多标签时,将每个标签作为图形上的单独节点显示会占用大量空间,并会掩盖更有趣的开发分支结构。同时,您可能需要能够轻松访问标签内容,以便比较修订版。此选项隐藏标签的节点,并在它们被复制的节点的工具提示中显示它们。源节点右侧的标签图标表示已创建标签。这大大简化了视图。
请注意,如果标签本身用作副本的源,例如基于标签的新分支,则该标签将作为单独的节点显示,而不是折叠。
隐藏在存储库的 HEAD 修订版中不再存在的路径,例如已删除的分支。
如果您选择了 折叠标签 选项,那么从其中获取标签的已删除分支仍然会显示,否则标签也会消失。最后一个被标记的修订版将以用于已删除节点的颜色显示,而不是显示单独的删除修订版。
如果您选择 隐藏标签 选项,那么这些分支将再次消失,因为它们不需要显示标签。
隐藏没有对相应文件或子文件夹进行提交更改的分支。这并不一定意味着该分支没有使用,只是没有对 此 部分进行更改。
在图上标记与您获取图表的项目的更新修订版相对应的修订版。如果您刚刚更新,这将是 HEAD,但如果其他人自您上次更新以来提交了更改,您的工作副本可能比 HEAD 低几个修订版。该节点通过赋予其粗体轮廓来标记。
如果您的工作副本包含本地更改,此选项会将其绘制为一个单独的椭圆形节点,链接回您的工作副本上次更新到的节点。默认轮廓颜色为红色。您可能需要使用 F5 刷新图表以捕获最近的更改。
有时修订版图包含比您想看到的更多修订版。此选项打开一个对话框,允许您限制显示的修订版范围,并通过名称隐藏特定路径。
如果您隐藏特定路径,并且该节点具有子节点,则子节点将显示为单独的树。如果您还想隐藏所有子节点,请使用 删除整个子树 复选框。
当图表包含多个树时,在背景上使用交替颜色有时很有用,有助于区分树。
显示整个图表的缩略图,当前视图窗口为一个可以拖动的矩形。这使您可以更轻松地浏览图表。请注意,对于非常大的图表,概述可能会由于极端的缩放因子而变得无用,因此在这种情况下不会显示。
为了方便浏览大型图,可以使用概览窗口。该窗口以一个小窗口显示整个图,并突出显示当前显示的部分。您可以拖动突出显示的区域来更改显示区域。
当鼠标悬停在修订框上时,修订日期、作者和注释将显示在提示框中。
如果您选择两个修订(使用 Ctrl-左键单击),您可以使用上下文菜单来显示这两个修订之间的差异。您可以选择在分支创建点显示差异,但通常您希望在分支端点显示差异,即在 HEAD 修订处。
您可以将差异查看为统一差异文件,该文件以单个文件显示所有差异,并提供最少的上下文。如果您选择 双击 文件名以获取文件的两个修订版本,并使用可视化差异工具进行比较。
→ ,您将看到一个已更改文件的列表。如果您 右键单击 修订,您可以使用 → 来查看历史记录。
您还可以将选定修订中的更改合并到不同的工作副本中。文件夹选择对话框允许您选择要合并到的工作副本,但之后没有确认对话框,也没有机会尝试测试合并。最好将更改合并到未修改的工作副本中,这样如果合并不成功,您可以恢复更改!如果您想将选定的修订从一个分支合并到另一个分支,此功能非常有用。
首次使用用户可能会对修订图显示的内容与用户的心理模型不符感到惊讶。例如,如果一个修订更改了文件的多个副本或分支,那么该修订将会有多个节点。建议从工具栏中最左侧的选项开始,逐步自定义图形,直到它接近您的心理模型。
所有过滤器选项都尽量减少信息丢失。这可能会导致某些节点更改其颜色,例如。如果结果出乎意料,请撤消上一次过滤操作,并尝试了解该特定修订或分支的特殊之处。在大多数情况下,过滤操作的初始预期结果要么不准确,要么具有误导性。
如果您想再次检查服务器以获取更新的信息,您可以简单地使用 F5 刷新视图。如果您使用的是日志缓存(默认情况下启用),这将检查存储库是否有更新的提交,并仅获取新的提交。如果日志缓存处于脱机模式,这也会尝试重新联机。
如果您使用的是日志缓存,并且您认为消息内容或作者可能已更改,则应使用日志对话框刷新您需要的消息。由于修订图从存储库根目录开始,因此我们必须使整个日志缓存失效,重新填充它可能需要 很长 时间。