美文网首页
查询代码行数并生成分析文件

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

作者: js_846865 | 来源:发表于2019-04-02 10:52 被阅读0次
    题记:本文旨在帮助有需要这方面统计功能的人,可以提供一种统计的思路及方法。

    一、统计非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
    如下图:
    
    image
    
    6、重新安装git_stats工具
    输入:gem install git_stats
    如下图即代表成功安装
    
    image
    image
    7、查看当前安装的git_stats
    如下图
    
    image
    8、切换到当前git工程目录下,注意是工程目录的上一级
    输入:cd xxx/xxx/xxx
    
    9、开始统计
    输入:git_stats generate -o stats --language zh_tw
    
    image
    经过一系列的执行后,最终会生成许多文件,双击打开index.html即可
    如下图:
    
    image
    image
    注意:
    注意:以上统计方法均有缺陷:统计时会将导入的第三方代码也统计进去,所以想精确的统计出每个人的代码行数,需要记录下统计期内每个人导入的第三方代码,并单独计算出第三方代码的行数,然后自己代码行数=个人统计总行数-第三方代码行数
    即:
    1、统计包含第三方包的总行数
    2、统计仅含第三方包的总行数
    3、自己的代码=包含第三方包的总行数-仅包含第三方包的总行数
    
    其中第2步我的做法是:
    1、新建一个空工程,将所有文件全部删除
    2、将第三方包导入这个空工程中
    3、采用命令行统计这个空工程的代码总行数
    

    相关文章

      网友评论

          本文标题:查询代码行数并生成分析文件

          本文链接:https://www.haomeiwen.com/subject/msewbqtx.html