手册

修订图

图 4.67. 修订图

A Revision Graph


有时您需要知道分支和标签是从主干的哪个位置创建的,而查看这类信息的理想方式是使用图表或树状结构。这时您需要使用 TortoiseSVN修订图...

此命令分析修订历史,并尝试创建一个树状图,显示副本的创建点以及分支/标签的删除时间。

重要提示

为了生成图表,TortoiseSVN 必须从仓库根目录获取所有日志消息。 不用说,即使对于只有几千个修订版本的仓库,这也可能需要几分钟,具体取决于服务器速度、网络带宽等。 如果您尝试对像 Apache 这样的项目执行此操作,该项目目前有超过 500,000 个修订版本,您可能需要等待一段时间。

好消息是,如果您使用日志缓存,您只需忍受一次延迟。 之后,日志数据将保存在本地。 日志缓存在 TortoiseSVN 的设置中启用。

修订图节点

每个修订图节点代表仓库中的一个修订版本,在该版本中,您正在查看的树中发生了某些更改。 不同类型的节点可以通过形状和颜色来区分。 形状是固定的,但可以使用 TortoiseSVN设置 来设置颜色。

添加或复制的项目

已添加或通过复制另一个文件/文件夹创建的项目使用圆角矩形显示。 默认颜色为绿色。 标签和主干被视为特殊情况,并使用不同的阴影,具体取决于 TortoiseSVN设置

删除的项目

已删除的项目,例如不再需要的分支,使用八边形(切角的矩形)显示。 默认颜色为红色。

重命名的项目

重命名的项目也使用八边形显示,但默认颜色为蓝色。

分支顶端修订版本

图表通常仅限于显示分支点,但能够查看每个分支各自的 HEAD 修订版本也通常很有用。 如果您选择 显示 HEAD 修订版本,则每个 HEAD 修订版本节点将显示为椭圆形。 请注意,此处的 HEAD 指的是在该路径上提交的最后一个修订版本,而不是仓库的 HEAD 修订版本。

工作副本修订版本

如果您从工作副本调用修订图,您可以选择使用 显示 WC 修订版本 在图表上显示 BASE 修订版本,这会将 BASE 节点标记为粗体轮廓。

修改后的工作副本

如果您从工作副本调用修订图,您可以选择使用 显示 WC 修改 显示一个额外的节点,代表您修改后的工作副本。 这是一个椭圆形节点,默认情况下具有红色粗体轮廓。

普通项目

所有其他项目都使用普通矩形显示。

请注意,默认情况下,图表仅显示添加、复制或删除项目的位置。 显示项目的每个修订版本都会为非平凡情况生成一个非常大的图表。 如果您真的想查看进行更改的 所有 修订版本,可以在 视图 菜单和工具栏中找到一个选项来执行此操作。

默认视图(关闭分组)将节点放置在垂直位置严格按照修订顺序排列,因此您可以直观地了解事物的完成顺序。 当两个节点在同一列中时,顺序非常明显。 当两个节点在相邻列中时,偏移量要小得多,因为不需要防止节点重叠,因此顺序不太明显。 这些优化对于将复杂图表保持在合理的大小是必要的。 请注意,此排序使用节点在 较旧 侧的 边缘 作为参考,即当图表显示最旧节点在底部时,节点的底边。 参考边缘很重要,因为节点形状的高度并不都相同。

更改视图

由于修订图通常非常复杂,因此有许多功能可用于根据您的需要定制视图。 这些功能在 视图 菜单和工具栏中可用。

分组分支

默认行为(关闭分组)使所有行都严格按修订版本排序。 因此,提交稀疏的长期分支只占用一整列进行少量更改,并且图表变得非常宽。

此模式按分支对更改进行分组,因此没有全局修订版本排序:分支上的连续修订版本将显示在(通常)连续的行中。 但是,子分支的排列方式是,较晚的分支将显示在同一列中,位于较早的分支之上,以保持图表的简洁。 因此,给定的行可能包含来自不同修订版本的更改。

最旧的在顶部

通常,图表在底部显示最旧的修订版本,并且树向上生长。 使用此选项改为从顶部向下生长。

在顶部对齐树

当图表被分解为几个较小的树时,树可能以自然修订顺序出现,或者在窗口底部对齐,具体取决于您是否使用 分组分支 选项。 使用此选项改为从顶部向下生长所有树。

减少交叉线

此选项通常启用,并避免显示具有大量混乱交叉线的图表。 但是,这也可能导致布局列出现在不太合乎逻辑的位置,例如在对角线而不是列中,并且图表可能需要更大的区域来绘制。 如果这是一个问题,您可以从 视图 菜单中禁用该选项。

差异路径名

长路径名可能会占用大量空间,并使节点框非常大。 使用此选项仅显示路径的更改部分,用点替换公共部分。 例如,如果您从 /trunk/doc/html 创建一个分支 /branches/1.2.x/doc/html,则该分支可以紧凑形式显示为 /branches/1.2.x/..,因为最后两个级别 dochtml 没有更改。

显示所有修订版本

这正是您期望的那样,并显示每个修订版本,其中某些内容(在您正在绘制的树中)已更改。 对于长历史记录,这可能会生成一个非常庞大的图表。

显示 HEAD 修订版本

这确保了每个分支上的最新修订版本始终显示在图表上。

精确复制源

创建分支/标签时,默认行为是将分支显示为从上次进行更改的节点获取。 严格来说,这是不准确的,因为分支通常是从当前 HEAD 而不是特定修订版本创建的。 因此,可以显示用于创建副本的更正确(但不太有用)的修订版本。 请注意,此修订版本可能比源分支的 HEAD 修订版本要新。

折叠标签

当项目有许多标签时,在图表上将每个标签显示为单独的节点会占用大量空间,并模糊更令人感兴趣的开发分支结构。 同时,您可能需要能够轻松访问标签内容,以便您可以比较修订版本。 此选项隐藏标签的节点,而是将它们显示在复制它们的节点的工具提示中。 源节点右侧的标签图标表示已创建标签。 这大大简化了视图。

请注意,如果标签本身被用作副本的源,例如基于标签的新分支,则该标签将显示为单独的节点,而不是折叠。

隐藏已删除的路径

隐藏仓库 HEAD 修订版本中不再存在的路径,例如已删除的分支。

如果您选择了 折叠标签 选项,则仍将显示从中获取标签的已删除分支,否则标签也会消失。 标记标签的最后一个修订版本将以用于已删除节点的颜色显示,而不是显示单独的删除修订版本。

如果您选择 隐藏标签 选项,则这些分支将再次消失,因为它们不需要显示标签。

隐藏未使用的分支

隐藏未对相应文件或子文件夹提交任何更改的分支。 这不一定表示该分支未使用,只是没有对 部分进行任何更改。

显示 WC 修订版本

标记图表上的修订版本,该修订版本对应于您获取图表的项目的更新修订版本。 如果您刚刚更新,这将是 HEAD,但如果自您上次更新以来其他人提交了更改,则您的 WC 可能比 HEAD 低几个修订版本。 节点通过赋予其粗体轮廓来标记。

显示 WC 修改

如果您的 WC 包含本地更改,则此选项将其绘制为单独的椭圆形节点,链接回您的 WC 上次更新到的节点。 默认轮廓颜色为红色。 您可能需要使用 F5 刷新图表以捕获最近的更改。

筛选

有时修订图包含的修订版本比您想看到的要多。 此选项打开一个对话框,允许您限制显示的修订版本范围,并按名称隐藏特定路径。

如果您隐藏特定路径并且该节点具有子节点,则子节点将显示为单独的树。 如果您也想隐藏所有子节点,请使用 删除整个子树 复选框。

树条纹

当图表包含多棵树时,有时在背景上使用交替颜色来帮助区分树会很有用。

显示概览

显示整个图表的小图片,并将当前视图窗口显示为一个可以拖动的矩形。 这使您可以更轻松地导航图表。 请注意,对于非常大的图表,由于极端的缩放比例,概览可能会变得无用,因此在这种情况下将不会显示。

使用图表

为了更轻松地导航大型图表,请使用概览窗口。 这将在一个小窗口中显示整个图表,并突出显示当前显示的区域。 您可以拖动突出显示的区域以更改显示的区域。

当鼠标悬停在修订版本框上时,修订日期、作者和注释会显示在提示框中。

如果您选择两个修订版本(使用 Ctrl-鼠标左键单击),您可以使用上下文菜单显示这些修订版本之间的差异。 您可以选择显示分支创建点的差异,但通常您会希望显示分支终点的差异,即 HEAD 修订版本。

您可以将差异查看为 Unified-Diff 文件,该文件在单个文件中显示所有差异,并且上下文最少。 如果您选择 上下文菜单比较修订版本,您将看到更改的文件列表。 双击 文件名以获取文件的两个修订版本,并使用可视化差异工具比较它们。

如果您 右键单击 修订版本,则可以使用 上下文菜单显示日志 查看历史记录。

您还可以将所选修订版本中的更改合并到不同的工作副本中。 文件夹选择对话框允许您选择要合并到的工作副本,但之后没有确认对话框,也没有机会尝试测试合并。 最好合并到未修改的工作副本中,这样如果合并失败,您可以还原更改! 如果您想将所选修订版本从一个分支合并到另一个分支,这是一个有用的功能。

学习阅读修订图

首次使用的用户可能会对修订图显示的内容与用户的心理模型不符感到惊讶。 例如,如果一个修订版本更改了文件或文件夹的多个副本或分支,那么该单个修订版本将有多个节点。 最好从工具栏中最左侧的选项开始,逐步自定义图表,直到它接近您的心理模型。

所有筛选器选项都尽量减少信息丢失。 例如,这可能会导致某些节点更改其颜色。 每当结果出乎意料时,撤消上次筛选器操作并尝试了解该特定修订版本或分支的特殊之处。 在大多数情况下,最初预期的筛选器操作结果要么不准确,要么具有误导性。

刷新视图

如果您想再次检查服务器以获取更新的信息,您可以简单地使用 F5 刷新视图。 如果您正在使用日志缓存(默认情况下启用),这将检查仓库是否有较新的提交,并仅获取新的提交。 如果日志缓存处于脱机模式,这也将尝试重新联机。

如果您正在使用日志缓存,并且您认为消息内容或作者可能已更改,则应使用日志对话框刷新您需要的消息。 由于修订图从仓库根目录工作,我们将不得不使整个日志缓存失效,重新填充它可能需要 非常 长的时间。

修剪树

大型树可能难以导航,有时您会想要隐藏它的某些部分,或将其分解为更小的树林。 如果您将鼠标悬停在节点链接进入或离开节点的位置,您将看到一个或多个弹出按钮,允许您执行此操作。

单击减号按钮以折叠附加的子树。

单击加号按钮以展开折叠的树。 当树被折叠时,此按钮仍然可见,以指示隐藏的子树。

单击叉号按钮以拆分附加的子树,并将其显示为图表上的单独树。

单击圆圈按钮以重新附加拆分的树。 当树被拆分时,此按钮仍然可见,以指示存在单独的子树。

单击图表背景以获取主上下文菜单,该菜单提供 全部展开全部加入 选项。 如果没有分支被折叠或拆分,则不会显示上下文菜单。

TortoiseSVN 主页