公司绩效考核要求,统计GITLAB仓库所有人提示有效代码行业

脚本1: 统计所有仓库、所有提交人的代码总行数(新增加-删除) 脚本2: 统计所有仓库、所有提交人的代码提交汇总与删除汇总 脚本3: 统计指定仓库的所有提交人的代码提交 汇总与删除汇总

注意:所有代码行数为0,统计结果中清除。 所有统计只统计master分支。

安装: 把脚本中的仓库路径搜索修改为GitLab的存储目录。 统计结果存储在/home目录下面。

[root@gitlab home]# cat code_statistics.sh
#!/bin/bash
master_dev='master'
date_star='2018-11-01'
date_end='2018-11-30'
path1=`find /home/gitlab_data/ -name "*.git"`
echo '' > /home/total.txt
#echo $path1
##arr=($a)用于将字符串$a分割到数组$arr ${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项 ,${arr[@]}存储整个数组。变量$IFS存储着分隔符,这里我们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。
OLD_IFS="$IFS"
IFS=" "
arr=($path1)
IFS="$OLD_IFS"
for s in ${arr[@]}
do

#echo "$s"
cd $s
user1=`git log --pretty='%aN' | sort | uniq `
OLD_IFS="$IFS1"
IFS1=" "
arr1=($user1)
IFS="$OLD_IFS1"
for s1 in ${arr1[@]}
do

#echo "$s1"

# if [[ $s1 != *HEAD* ]]
# then
total=`git log $master_dev --since ==$date_star --until=$date_end --author=$s1 --pretty=tformat: --numstat | awk '{ loc += $1 -$2 } END { printf loc }'`
#total_temp1=`git log $master_dev --since ==$date_star --until=$date_end --author='$s1' --pretty=tformat: --numstat | awk '{ printf $1}'`
#echo $total_temp1
# echo '' > /home/total.txt
#if [ -n "$total" ];
#then
echo $s1 $total >> /home/total.txt
#fi
# fi
#user1=`git log --pretty='%aN' | sort | uniq `

done

done

cat /home/total.txt | awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' > /home/total_end.txt
cat /home/total_end.txt |grep -v '\ 0' > /home/total_all.txt

基于Gitlab统计代码行--统计所有仓库、所有提交人的代码总行数(新增加-删除)的更多相关文章

  1. 【转】Git 代码行统计命令集

    查看git上个人代码量 git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; su ...

  2. 【转】Git代码行统计命令集

    http://blog.csdn.NET/dwarven/article/details/46550117 http://blog.csdn.net/hshl1214/article/details/ ...

  3. Git代码行统计命令集

    统计某人的代码提交量,包括增加,删除: git log --author="$(git config --get user.name)" --pretty=tformat: --n ...

  4. Java 代码行统计(转)

    package codecounter; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFound ...

  5. mac OS X下git代码行统计命令

    1.统计某人的代码提交量,包括增加,删除 git log --author=-- --until=-- --pretty=tformat: --numstat | awk '{ add += $1 ; ...

  6. XCODE 代码行统计

    find . -name "*.m" -or -name "*.h" -or -name "*.c" |xargs grep -v &quo ...

  7. TensorFlow 代码行统计

    https://github.com/tensorflow/tensorflow.git

  8. 一键部署基于GitLab的自托管Git项目仓库

    https://market.azure.cn/Vhd/Show?vhdId=9851&version=11921 产品详情 产品介绍GitLab https://about.gitlab.c ...

  9. 记-统计svn与git的log日志中的代码行变更

    任务要求 统计指定时间内,指定git地址与svn地址上的所有人员的代码行变更情况. 解决方案 最初为根据数据库中存储的所有git与svn地址来统计所有人员的提交代码行.之后由于库中存储的地址不全,改为 ...

随机推荐

  1. Mad LIbs小游戏

    c1=input('请输入摄氏温度;') c2=float(c1)*9/5+32 print('摄氏温度转换成华氏温度是{}'.format(c2)) name1=input('请输入名字:') na ...

  2. poj 3264 倍增 ST表

    #include<iostream> #include<cmath> using namespace std; ; int a[maxn]; ]; ]; int quick(i ...

  3. 关于函数式编程(Functional Programming)

    初学函数式编程,相信很多程序员兄弟们对于这个名字熟悉又陌生.函数,对于程序员来说并不陌生,编程对于程序员来说也并不陌生,但是函数式编程语言(Functional Programming languag ...

  4. Cache架构设计

    Cache策略 定时过期策略 定时过期的好处是Cache节点的个数符合实际需求,不会造成资源滥用和服务器压力 定时过期适合访问量较大,实时性要求不高的情况 如果访问量小,定时过期会造成Cache命中率 ...

  5. 【Jmeter】api性能测试总结

    1.前提概念 平时常用的性能测试:api性能测试+场景性能测试:今天就说一说api性能测试 2.如何进行性能测试? 需求:对某api进行性能测试,看看最大承受的并发数,分析下图表 分析: 错误思路:当 ...

  6. 关于动态内存malloc和realloc

    1.malloc   1.申请的内存长度可以运行时决定,单位是字节  2.申请的内存为连续的内存空间  3.返回的地址可以根据实际需要强转成对应的类型  4.动态申请内存的生命周期是整个程序,除非手动 ...

  7. lvs UDP端口负载均衡配置

    ! Configuration File for keepalived global_defs { notification_email { test@163.com } notification_e ...

  8. iOS兼容性(不断完善)

    1.iOs不支持iframe,不支持flash,如果移动端要嵌入视频,请用html5 的video标签.

  9. SQL SERVER 月、季、年统计与常用查询语句汇总

    一.SQL SERVER 月.季.年统计查询 --本天 SELECT *FROM dbo.TableName WHERE DATEDIFF(DAY,TimeField,getdate())= 0; - ...

  10. css零碎知识点小结

    1.单行文字溢出显示省略号: div{ width: 200px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap; } 2 ...