在将子模块发布集成到父项目中时,我经常遇到只有在集成时才可见和触发的错误。这个是正常的。错误是正常的。我们调试它们,修复它们并将它们提交到子模块中。
现在发生了好几次这样的修复被子模块开发人员覆盖,并在集成该子模块的项目中再次发生。
随着时间的推移,由于几乎没有对他们的行为和症状进行智能跟踪,它碰巧被遗忘了,然后又被修复了。这是非常耗时的,尤其是在棘手的情况下。
因此我的问题是:当我再次看到它的症状时,我如何在技术上存储一个错误的“行为”以被“提醒”?
有没有解决我的问题的工具。我可以用什么来按症状对已修复的错误进行分类?
我的一个想法是使用自定义模式扩展静态分析器(例如覆盖率或 clang-analyzer)。这不会解决行为/症状方法,但我可以在编译期间使用第一次修复期间创建的模式来分析代码:“如果这段代码是以某种方式编写的,那就不好了”。根据我的经验,我可以通过这种方式解决相当多的错误,但不是全部。
我添加了 C 和 C++ 标签,因为这些是我正在使用的语言。
更新:由于评论中有问题:我们正在使用 git。并且重新出现的错误是在第一次更正后数月甚至数年提交的。
更新:我们正在使用 Mantis 进行错误跟踪。