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

Mda*_*daG 16 mercurial graph tortoisehg

习惯于ClearCase如何绘制图形,我发现Mercurial和TortoiseHg的方式乍看之下令人困惑.

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

就是它使用TortoiseHg Explorer的样子.该图来自测试库.:-) TortoiseHg中的图表(坏)

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

[编辑]

查看MacHg及其绘制图表的方式.这更符合我自己想要看到的内容. MacHg中的静态/稳定图

Mac*_*cke 6

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

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

贡献时间!

更新

我想看到的:

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

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

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

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

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