当我在我的代码库上运行一个静态分析工具时,我得到了如下结果:
...
arch/powerpc/kernel/time.c:102:5: warning: symbol 'decrementer_max' was not declared. Should it be static?
arch/powerpc/kernel/time.c:138:1: warning: symbol 'rtc_lock' was not declared. Should it be static?
arch/powerpc/kernel/time.c:361:37: warning: implicit cast to nocast type
...
我想跟踪警告的数量和它们在代码中的位置,因为人们正在进行更改。
我可以只运行静态分析的结果,但是如果有人在第50行的time.c
中插入一些代码,上面的警告就会移动,因为行号已经改变了,diff会告诉我它们已经改变了。
我应该如何以一种处理文件中代码移动的方式来比较它们呢?
谷歌搜索“智能差异”等等并不有效:它们大多是智能代码差异,而不是智能日志差异。像Greylog或Kibana这样的日志分析工具看起来也不太合适,它更适合于不同的和更一般的分析,而不是针对这一相当具体的任务。
有什么明显的东西我错过了吗?或者,这是我应该期望自己编写工具的问题吗?
发布于 2017-01-04 21:58:23
我做了一个稍微简单一些的设置--就像@ajd建议的那样,解析消息,并进行行号不敏感的匹配。
发布于 2016-12-17 17:12:16
您可以维护代码和错误的合并:在对应的代码行之后插入每个错误消息(减去其行号)。然后,如果有人在第50行插入代码,则(更新的)合并将不会在后面的错误点附近有差异。当然,它在第50行会有差异,您可能感兴趣,也可能不感兴趣。如果您愿意,您可以忽略不涉及错误消息的diff-块(在每个插入的错误消息中都需要一些不同的标记)。
https://stackoverflow.com/questions/41194530
复制相似问题