Использование средства проверки дублирования кода PMD cpd, как проверить дублирование нескольких файлов в большом репозиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование средства проверки дублирования кода PMD cpd, как проверить дублирование нескольких файлов в большом репози

Сообщение Anonymous »

На моей работе мы используем инструмент PMD cpd для проверки дублирования кода в нашем репозитории C++. Этот инструмент время от времени запускается по всему репозиторию, но это довольно медленно. В промежутках между запросами на включение я хотел бы посмотреть, не приводит ли изменение, внесенное разработчиком, к увеличению дублирования кода.
Предположим, в репозитории есть n файлов, а запросы на включение изменяют 3 файла. Инструмент PMD cpd, как правило, проверяет дублирование кода между всеми файлами, но меня интересует только то, имеют ли эти 3 файла дублирование кода с другими файлами n-3 (и между 3).
Следовательно, вместо поиска дублирования кода между всеми n файлами, которые являются (n)(n-1)/2 проверками, я хотел бы искать дублирование кода между n файлами для k файлов из запроса на включение, которые ((n)(n-1)-(n-k)(n-k+1))/2 = (k-1)(2n-k)/2 проверки. Для n=10000 и k=100 это примерно уменьшает 50 миллионов проверок до 1 миллиона проверок.
Из документации я не вижу четкого способа это проверить. Возможно ли это или есть ли у кого-нибудь способ сделать это эффективно?

Подробнее здесь: https://stackoverflow.com/questions/798 ... or-a-few-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»