git 如何在计算代码行数时跳过特定文件?

whhtz7ly  于 9个月前  发布在  Git
关注(0)|答案(3)|浏览(116)

我有一个用户案例,我需要计算每个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是否提供任何功能来排除文件?

oxosxuxt

oxosxuxt1#

1.找到所有与BUC-ID相关的提交。
第一个月
1.对于每一次提交,列出所有更改的文件,不包括某些文件/文件夹。
git show $commit --pretty=format:"" --name-only | grep -ve "foo.txt" -ve "bar/"
1.对于其余的每个 * 文件 *,计算其insertionsdeletionsdelta
git show $commit --pretty=format:"" --short-stat -- $file | grep -E "fil(e|es) changed" | awk
1.总结结果。

vwkv1x7d

vwkv1x7d2#

cloc有几种机制来排除文件;在https://github.com/AlDanial/cloc上搜索“exclude”以获得详细信息。
简单地说,--exclude-list-file让你传入一个包含你想要排除的文件名的文件,--exclude-dir让你跳过指定的目录,--exclude-ext跳过给定文件扩展名的文件,--exclude-lang忽略给定的编程语言,--not-match-f让你指定一个正则表达式,它的匹配被跳过。

ulmd4ohb

ulmd4ohb3#

我发现的最好的方法是使用cloc,让它忽略那些被源代码控制忽略的文件。
例如:
第一个月

相关问题