我有一个用户案例,我需要计算每个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和多个文件。有没有什么方法可以跳过几个文件/文件夹,仍然能够计算BUC-ID的代码行?
基本上,我需要排除一些文件/文件夹,同时计算代码行。我不能这样做,因为每个提交有多个文件。一些应该被包括,一些被排除.有什么想法如何实现这一点?
CLOC是否提供任何功能来排除文件?
3条答案
按热度按时间oxosxuxt1#
1.找到所有与BUC-ID相关的提交。
第一个月
1.对于每一次提交,列出所有更改的文件,不包括某些文件/文件夹。
git show $commit --pretty=format:"" --name-only | grep -ve "foo.txt" -ve "bar/"
个1.对于其余的每个 * 文件 *,计算其
insertions
,deletions
和delta
。git show $commit --pretty=format:"" --short-stat -- $file | grep -E "fil(e|es) changed" | awk
个1.总结结果。
vwkv1x7d2#
cloc有几种机制来排除文件;在https://github.com/AlDanial/cloc上搜索“exclude”以获得详细信息。
简单地说,
--exclude-list-file
让你传入一个包含你想要排除的文件名的文件,--exclude-dir
让你跳过指定的目录,--exclude-ext
跳过给定文件扩展名的文件,--exclude-lang
忽略给定的编程语言,--not-match-f
让你指定一个正则表达式,它的匹配被跳过。ulmd4ohb3#
我发现的最好的方法是使用cloc,让它忽略那些被源代码控制忽略的文件。
例如:
第一个月