我有一个用户案例,我需要计算每个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的代码行吗?
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是否提供排除文件的任何功能?
答案 0 :(得分:0)
查找与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
总结结果。
答案 1 :(得分:0)
cloc有几种排除文件的机制;搜索“排除” https://github.com/AlDanial/cloc了解详情。
简单地说,--exclude-list-file
允许您传入包含要排除的文件名称的文件,--exclude-dir
允许您跳过指定目录,--exclude-ext
跳过具有给定文件扩展名的文件--exclude-lang
1}}忽略给定的编程语言,--not-match-f
允许您指定跳过匹配的正则表达式。
答案 2 :(得分:0)
我发现执行此操作的最佳方法是使用cloc,并使其忽略源代码控制忽略的相同文件。
例如:
cloc --vcs=git .