查询代码行数并生成分析文件

题记:本文旨在帮助有需要这方面统计功能的人,可以提供一种统计的思路及方法。

一、统计非git项目代码【仅限于iOS】

1、如果要统计ios开发代码,包括头文件、列出每个文件的行数,终端命令进入项目目录下
输入:find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l 

2、去除空行列出代码行数总和
输入:find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs grep -v "^$"|wc -l 

3、工程是swift 和OC 混编的情况下,你需要添加 -name "*.swift" 来统计swift 里面的行数
输入:find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" -or  -name "*.swift" |xargs wc -l 

注意:grep -v "^$"是去掉空行,注释也统计在代码量之内

二、查看git项目总代码行数

1、进入当前git项目目录
输入:cd /xxx/xxx

2、查看项目中指定某个人的代码行数
输入:git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

3、查看项目中指定时间段内,某个人的代码行数
输入:git log --since ==2019-03-25 --until=2019-03-31 --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

4、统计项目中每个开发者的增、删、总行数
输入:git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

5、查看仓库提交者排名前 5
输入:git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

6、贡献者统计
输入:git log --pretty='%aN' | sort -u | wc -l

7、提交数统计
输入:git log --oneline | wc -l 

三、采用git代码统计工具:git_stats

git_stats:仓库代码统计工具之一,可以按git提交人、提交次数、修改文件数、代码行数、注释量在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便
下面直接进入正题:
1、安装git_stats之前首先要保证电脑上安装了ruby,可以打开终端输入:ruby -v来查询当前电脑上ruby的版本信息,如果没有安装过ruby请自行百度,在此就不做详细介绍了

2、执行安装git_stats命令
输入:gem install git_stats
如果在此一步等待了半天都没有什么反应的话,可能是因为镜像问题,推荐更换一个镜像地址。

3、查询当前镜像地址
输入:gem sources -l
如下图:
image
4、经查询,https://gems.ruby-china.org/镜像已经不维护了,需要替换为:https://gems.ruby-china.com/【详细见官网:https://gems.ruby-china.org】
输入:gem sources --add https://gems.ruby-china.com/ --remove https://gems.ruby-china.org/
如下图:
image
5、再次查看镜像
输入:gem sources -l
如下图:
查询代码行数并生成分析文件_第1张图片
image

6、重新安装git_stats工具
输入:gem install git_stats
如下图即代表成功安装
查询代码行数并生成分析文件_第2张图片
image

image
7、查看当前安装的git_stats
如下图
image
8、切换到当前git工程目录下,注意是工程目录的上一级
输入:cd xxx/xxx/xxx

9、开始统计
输入:git_stats generate -o stats --language zh_tw
查询代码行数并生成分析文件_第3张图片
image
经过一系列的执行后,最终会生成许多文件,双击打开index.html即可
如下图:
查询代码行数并生成分析文件_第4张图片
image

查询代码行数并生成分析文件_第5张图片
image
注意:
注意:以上统计方法均有缺陷:统计时会将导入的第三方代码也统计进去,所以想精确的统计出每个人的代码行数,需要记录下统计期内每个人导入的第三方代码,并单独计算出第三方代码的行数,然后自己代码行数=个人统计总行数-第三方代码行数
即:
1、统计包含第三方包的总行数
2、统计仅含第三方包的总行数
3、自己的代码=包含第三方包的总行数-仅包含第三方包的总行数

其中第2步我的做法是:
1、新建一个空工程,将所有文件全部删除
2、将第三方包导入这个空工程中
3、采用命令行统计这个空工程的代码总行数

你可能感兴趣的:(查询代码行数并生成分析文件)