有没有办法改变TortoiseHg中绘制图形的方式?

时间:2010-10-07 08:25:16

标签: mercurial graph tortoisehg

习惯了ClearCase如何绘制图形,我发现Mercurial和TortoiseHg的乍一看让人感到困惑。

This是我希望它代表的方式: Static position for branches (good) 具有分支的静态位置。例如。维护分支始终向左/向右,最好是直线而不是现在的意大利面弯曲分支(见下面的链接)。

This是使用TortoiseHg Explorer看起来的样子。该图来自测试库。 :-) Graph in TortoiseHg (bad)

有没有办法改变Mercurial中绘制图形的方式?

[编辑]

查看MacHg以及它如何绘制图表。这更符合我自己想要看到的内容。 static/stable graph in MacHg

2 个答案:

答案 0 :(得分:6)

问题是任何分叉提交都会创建一个“匿名”分支(而不是命名分支,这是一个稍微不同的概念),默认的图形视图不能在没有良好ID的情况下将提交放在静态列中。因此,实现者放弃了,我们有了当前的图表。

现在,我认为您提供的第一个视图非常棒,并且应该可以使用一些启发式方法根据(developer1-a,developer2-a,developer2-b等)将ID分配给匿名分支。那很酷。 :)

贡献时间!

<强>更新

我想看到的内容:

  • 按提交时间垂直排序,而不是修订整数id。
  • 提交水平排序,按命名分支分组,每个分支内的每个提交者。 (并且每个提交者提交都应该在附近,以防提交者分叉并合并他自己的数据。)

这意味着算法必须在填充视图并将提交“点”放在右列/行之前查看所有提交(要查看)。

所有提交的三次通过应该足够了,每次都可以在O(n)时间内完成,对所有事情都是O(n):

  • 全部收集数据(收集分支/提交者)(O(n))
  • 将分支/提交分类为合适的列顺序
  • 按提交时间排序提交(O(n log n)或更好的O(n),自纪元以来的秒数为基数排序)
  • 根据分组行走提交并绘制点和祖先行

在提交之间路由线路时,我们可能需要聪明(呃),但这还有待观察。特别是,我们可以使用提交点之间的垂直空间来连接垂直分开(即及时)的合并,而不是像当前算法一样使用整个列

答案 1 :(得分:3)

目前,似乎没有什么可以按照您想要的方式进行可视化。

我想TortoiseHg资源管理器的可视化直接来自graphlog扩展。

然而,有一个基于graphviz的可视化,虽然它类似于graphlog但你可以通过任何方式破解它以使其在视觉上更好。