eclipse代码量统计插件_git统计代码量脚本

在工作中,我想统计各开发人员,在一定日期范围内的编码情况,故有了此脚本。

一、先贴图,看看效果:

530d20e9deb86b6ac7278bca08cf01c4.png

此图中,用“开发者姓名”代替了实际项目中git的账号名称,输出结果按提交次数倒序输出。

二、接下来,贴脚本代码,该脚本是shell脚本,主要用到了git,awk两个命令:

#!/bin/sh
# author:xjf
# date: 2020-9-11
# desc: 统计代码量

# git目录
dir_list="project1 project2"

# 创建统计表
commit_file="commit.txt";
if [ -f $commit_file ]; then
        rm $commit_file
fi
touch $commit_file

# 循环目录
for dir in $dir_list
do
        echo "project:$dir"
        cd $dir
        if [ $? -eq 0 ]; then
                # 同步代码
                git pull >/dev/null

                # 统计代码信息
                git log --pretty=format:%H,%ai,%an,%s --no-merges --since=$1 --until=$2 --numstat |awk -F, 'BEGIN{hash="";author=""; date="";comment="";}{if (NF>=4) {gsub(/ /,"_",$0);hash=$1; date=substr($2,1,19); author=$3; comment=$4;} else if (NF>0) print hash"t" date "t" author"t" comment "t" $0;}' |awk '{hash[$1] = $1; author[$1] = $3; date[$1] = $2; comment[$1] = $4; file[$1] += 1; add[$1] += $5; del[$1] += $6; fileName[$1] = fileName[$1]","$7} END{for (i in hash) {printf "%s t %s t %s t %s t %d t %d t %d n",hash[i],author[i],comment[i],date[i],add[i],del[i],file[i]}}' >> ../$commit_file;

                #返回上级目录
                cd ..
        fi
done

# 输出结果
echo "-----------------------------------"
awk 'BEGIN{printf "开发者t提交次数t新增代码行数t删除代码行数t改动文件数n"}'
awk '{author[$2] = $2; commit[$2] += 1; add[$2] += $5; del[$2] += $6; file[$2] += $7;}END{for (i in author){ printf "%st%dt%dt%dt%dn",author[i],commit[i],add[i],del[i],file[i]}}' $commit_file | sort -k 2 -n -r ;

以上代码,有一处需要修改为自己的信息:dir_list修改为自己的项目主目录名称,用空格隔开。

三、创建自己的脚本文件:

在自己项目的根目录里创建可执行文件,如 get_statistic_commit.sh,并给予执行权限(chmod u+x get_statistic_commit.sh),将以上脚本的内容写到该文件中。

四、执行脚本:

执行脚本时,有两个参数:起始日期、结束日期,执行的命令如下:

$ ./get_statistic_commit.sh 2020-09-01 2020-09-30

说明:git log命令的参数--since会使用第一个日期参数,本例中为2020-09-01,但由于--since参数统计git代码时,并不包括指定日期,即2020-09-01当天的代码并不会统计进来,故起始日期应该写成前一天的日期。

五、执行环境:

该脚本可在linux环境下执行,前提是需安装git。也可以在win平台中执行,前提是安装git.exe。

本示例中使用的是git.exe:

写在最后,望各位大佬多多指正、交流,共同学习、进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值