图形差异和版本控制工具

时间:2010-03-12 02:29:31

标签: algorithm version-control diff graph

我正在与一个编辑大型DAG的团队合作,这些DAG表示为单个文件。目前,我们无法与多个用户同时修改DAG。

是否有一个工具(有点像Eclipse SVN插件)可以对文件进行修订控制(管理时间戳/修订标记)以识别传入/传出/冲突的更改(节点/链接插入/删除/修改)和合并更改就像程序员使用源代码文件一样?

系统也应该能够进行依赖管理。例如。当两个节点中的一个不存在时,不得接受传入链路。也就是说,它不应该通过允许部分更新来“破坏”现有的DAG。

如果有框架使用通用“节点”和“链接”接口来完成此操作?

注意:我知道Protege及其插件。他们目前不满足我的要求。

4 个答案:

答案 0 :(得分:1)

您可以使用Graphviz

您可以简单地将版本控制放在源文件下,然后使用Makefile来构建和更新图形。通过这种方式,您可以使用SVN,Mercurial,Git或您喜欢的任何其他版本控制。

源文件的扩展名为.gv,看起来像this

检查Graphviz complements,看看是否符合您的需求。他们有很多图形界面可能完全符合您的要求。

答案 1 :(得分:0)

我不知道任何插件。如果我必须编写自定义代码,我会将DAG存储在邻接矩阵中。所有其他操作现在变得简单。

答案 2 :(得分:0)

如果找不到这样的工具,传统的VCS似乎除了依赖管理之外都会遇到一切。依赖管理也是程序员处理的事情(oops我删除了你的新代码所依赖的功能)。将依赖性检查视为“构建”并查找在接受签入之前强制构建代码的VCS可能会有所帮助。

答案 3 :(得分:0)

不仅仅是一个简单的版本树可以帮助您使用可视化部分吗?依赖是一个不同的故事。