我正在开发一个 HTML 和 Javascript 应用程序,它将采用 git 树并将提交和合并显示为有向图(如 git log --graph)。我已经阅读了一些关于 Reingold-Tilford 整洁算法的内容,但它似乎不适用于具有共享父子节点的图。所需输出的示例(作为文本,但我正在查看 d3js 和 Raphael 等图形库):
* - 1 day ago
|
* - 2 days ago
|\
| * - 3 days ago
|/
* - 4 days ago
|
* - 5 days ago
是否有任何图书馆已经处理了这个问题?有没有这样的渲染图的例子(任何语言)?作为最后的手段,我想我会尝试从 git 本身(https://github.com/git/git/blob/master/graph.c)重现图形,尽管它有点密集。
谢谢您的帮助。