Как пропустить определенные файлы при расчете строк кода?
У меня есть пользовательский случай, когда мне нужно рассчитать строки кода для 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
позволяет указать регулярное выражение, чьи совпадения пропускаются.
Найти все коммиты, которые связаны с BUC-ID.
git log --pretty=%H --grep=BUC3565-EPIC16
Для каждого коммита перечислите все измененные файлы, за исключением некоторых файлов / папок.
git show $commit --pretty=format:"" --name-only | grep -ve "foo.txt" -ve "bar/"
Для каждого файла остатка рассчитайте его
insertions
,deletions
а такжеdelta
,git show $commit --pretty=format:"" --short-stat -- $file | grep -E "fil(e|es) changed" | awk
Подведите итоги.
Лучший способ, который я нашел для этого, - использовать cloc и игнорировать те же самые файлы, которые игнорируются системой контроля версий.
Бывший:
cloc --vcs=git .