我现在正在使用darcs工作超过一年,但我一直在问自己同样的问题:
跟踪导致两个补丁之间存在依赖关系的代码行/文件/代码更改的最佳方法是什么?现在我这样做的方法如下:
我使用darcs changes -i
检查两个修补程序影响的文件,并为相应的修补程序键入x
。
我检查哪些文件都受到两个补丁的影响。
我猜哪个文件导致了依赖关系,并且使用darcs amend --unrecord
我从两个补丁中删除了对此文件的更改。
我检查依赖关系是否已解决并将更改添加回补丁,同时不断检查依赖关系是否重新解决,从而跟踪导致依赖关系的代码部分。
这种寻找导致依赖的代码行/文件的试错技术需要花费大量时间。必须有一个更简单的方法来做到这一点,我错过了什么?提前谢谢!
答案 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来自动化这个过程并进行一些颜色编码。
你可以在这里找到它:iHateDarcs on github
(免责声明/警告:我目前是该gui的唯一用户。它对我的工作流程进行了高度自定义,包括许多您可能不感兴趣的其他内容,例如与redmine问题跟踪器集成并需要一些设置工作以运行,但尚未经过任何不是我的人的测试)