Git Project Line-Count
in operateCo-De with 0 comment

Git Project Line-Count

in operateCo-De with 0 comment

基础:统计标准

代码的统计,最核心的不在于技术,关键在于按照什么标准进行统计。
更本质一点,LD们是出于什么目的,需要进行代码统计。
目的一:为了统计非物质项目资产
目的二:为了核算工作产出,kpi,员工性价比

针对目的一,代码统计的标准可能就涉及:

针对目的二,代码统计的标准可能就涉及:

基于git进行统计
以gitlab为例,每次git commit信息都包含了提交人,提交时间,新增行数,删除行数
gitlab-commit.png
因此直观上我们可以根据git仓库的变化信息进行代码行数的统计,注意这里的代码行数是包含空格、注释以及所有文件的。
而获取git相关提交信息,主要有两种方式,一种是基于git本身的命令,一种是基于gitlab的web api。

git命令

基于git命令的前提,是需要先把项目clone到本地。
然后通过git的diff命令,进行文件之间的比较,快速得到总的代码行数。
具体的步骤如下:

clone项目

git clone -b <branchName> https://oauth2:<authToken>@test.gitlab.com/testproject.git

使用git diff命令

cd testproject

git diff --shortstat `git hash-object -t tree /dev/null` | tail -1

以上命令会对比当前目录下的文件与空树之间的不同,结果会返回每个文件的变化情况
git-diff.png

使用git ls-files命令

除了git diff外,还可以利用另一个git命令,git ls-files进行统计

git ls-files| xargs wc -l | tail -1

git-lsfile.png

结论及扩展

Comments are closed.