追踪darc中的依赖关系

时间:2016-10-13 09:05:22

标签: darcs

我现在正在使用darcs工作超过一年,但我一直在问自己同样的问题:

跟踪导致两个补丁之间存在依赖关系的代码行/文件/代码更改的最佳方法是什么?现在我这样做的方法如下:

  1. 我使用darcs changes -i检查两个修补程序影响的文件,并为相应的修补程序键入x

  2. 我检查哪些文件都受到两个补丁的影响。

  3. 我猜哪个文件导致了依赖关系,并且使用darcs amend --unrecord我从两个补丁中删除了对此文件的更改。

  4. 我检查依赖关系是否已解决并将更改添加回补丁,同时不断检查依赖关系是否重新解决,从而跟踪导致依赖关系的代码部分。

  5. 这种寻找导致依赖的代码行/文件的试错技术需要花费大量时间。必须有一个更简单的方法来做到这一点,我错过了什么?提前谢谢!

1 个答案:

答案 0 :(得分:1)

Darcs显示依赖关系

从darcs 2.12开始(release notes) 您可以使用命令

生成依赖关系图
darcs show dependencies

有关darcs版本的说明

我建议按照发行说明中的​​说明安装带有堆栈的darc。

显示输出

该命令以graphviz点格式生成依赖图。 你必须自己负责显示输出(毫不奇怪)。

一种简单的方法是将输出直接传递到dot,让它创建一些输出(例如使用Tpng的png),然后将其输入 Display @ ImageMagick < / EM>:

darcs show dependencies --last 20 | head -n -1 | dot -Tpng | display

或者您可以将这些内容写入文件并使用evince或您喜欢的任何查看器打开它:

darcs show dependencies --last 20 | head -n -1 | dot -Tpdf > darcs-dependencies.pdf && xdg-open darcs-dependencies.pdf

图形界面:

我实际上已经编写了一个gui来自动化这个过程并进行一些颜色编码。

show dependencies dialogue colored sample output

你可以在这里找到它:iHateDarcs on github

(免责声明/警告:我目前是该gui的唯一用户。它对我的工作流程进行了高度自定义,包括许多您可能不感兴趣的其他内容,例如与redmine问题跟踪器集成并需要一些设置工作以运行,但尚未经过任何不是我的人的测试)