有什么方法可以改变 TortoiseHg 中图表的绘制方式吗?

2024-04-18

由于习惯了 ClearCase 绘制图表的方式,我乍一看发现 Mercurial 和 TortoiseHg 的方式令人困惑。

This http://nvie.com/posts/a-successful-git-branching-model/ is how I'd like it to be represented: Static position for branches (good) With static positions for branches. E.g. Maintenance branch to the left/right always and preferably in a straight line and not the current spaghetti curved branch it is now (see below link).

This http://i1177.photobucket.com/albums/x350/magnus80a/hg_graph.png is how it looks using the TortoiseHg Explorer. The graph is from a test repository. :-) Graph in TortoiseHg (bad)

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

[edit]

Check out MacHg http://jasonfharris.com/machg/ and how it draws the graphs. This is more in line of what I'd like to see myself. static/stable graph in MacHg


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

现在,我认为您给出的第一个视图非常棒,并且应该可以使用一些启发式方法将 id 分配给匿名分支,具体取决于(developer1-a、developer2-a、developer2-b 等)。那就太好了。 :)

贡献时间!

Update

我想看到的是:

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

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

不过,对所有提交进行三次传递应该就足​​够了,并且每次都可以在 O(n) 时间内完成,这对于所有操作来说都是 O(n) :

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有什么方法可以改变 TortoiseHg 中图表的绘制方式吗? 的相关文章

随机推荐