Когда я запускаю инструмент статического анализа своей кодовой базы и получаю такие результаты:
...
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
...
Я хочу отслеживать количество предупреждений и то, где они находятся в коде, когда люди вносят изменения.
Я мог бы просто diff
просмотреть результаты статического анализа, но тогда, если кто-то вставит код в time.c
в строке 50, предупреждения выше переместятся, и, поскольку номера строк изменились, diff сообщит мне, что они изменились.
Как я должен сравнивать их таким образом, чтобы иметь дело с перемещением кода в файле?
Поиск в Google «умных различий» и т. Д. Не дал результатов: в основном это умные различия кода, а не умные различия журналов. Инструменты анализа логов, такие как Greylog или Kibana, также кажутся плохо подходящими, предназначенными больше для другого и более общего анализа, чем для этой вполне конкретной задачи.
Есть ли что-то очевидное, что я упускаю? Или это проблема, когда я должен ожидать, что буду писать свои собственные инструменты?