Как пропустить определенные файлы при расчете строк кода?

У меня есть пользовательский случай, когда мне нужно рассчитать строки кода для BUC-ID. Я добился того же, используя

           git log --shortstat --grep=BUC3565-EPIC16 |grep -E "fil(e|es) changed" | awk -v BUC=$i '{ inserted+=$4; deleted+=$6; delta+=$4-$6i } END {printf "%s, %s,  %s,  %s \n",BUC, inserted, deleted, delta }'

Теперь у меня есть BUC-ID с несколькими файлами. Есть ли способ, которым я могу просто пропустить несколько файлов / папок и по-прежнему в состоянии рассчитать Lines off Code для этого BUC-ID?

Basically, I need to exclude some files/folders while calculating Lines of Code. I am not able to do so because each commit has multiple files. Some should be included and some excluded...Any idea how to achieve that?

Предоставляет ли CLOC какую-либо функцию для исключения файлов?

3 ответа

Cloc имеет несколько механизмов для исключения файлов; поиск "исключить" на https://github.com/AlDanial/cloc для получения подробной информации.

Коротко говоря, --exclude-list-file позволяет передать файл, содержащий имена файлов, которые вы хотите исключить, --exclude-dir позволяет пропускать назначенные каталоги, --exclude-ext пропускает файлы с заданным расширением, --exclude-lang игнорирует данные языки программирования, --not-match-f позволяет указать регулярное выражение, чьи совпадения пропускаются.

  1. Найти все коммиты, которые связаны с BUC-ID.

    git log --pretty=%H --grep=BUC3565-EPIC16

  2. Для каждого коммита перечислите все измененные файлы, за исключением некоторых файлов / папок.

    git show $commit --pretty=format:"" --name-only | grep -ve "foo.txt" -ve "bar/"

  3. Для каждого файла остатка рассчитайте его insertions, deletions а также delta,

    git show $commit --pretty=format:"" --short-stat -- $file | grep -E "fil(e|es) changed" | awk

  4. Подведите итоги.

Лучший способ, который я нашел для этого, - использовать cloc и игнорировать те же самые файлы, которые игнорируются системой контроля версий.

Бывший:

cloc --vcs=git .

Другие вопросы по тегам