基於Gitlab統計代碼行--統計全部倉庫、全部提交人的代碼總行數(新增長-刪除)

公司績效考覈要求,統計GITLAB倉庫全部人提示有效代碼行業git

腳本1: 統計全部倉庫、全部提交人的代碼總行數(新增長-刪除) 腳本2: 統計全部倉庫、全部提交人的代碼提交匯總與刪除彙總 腳本3: 統計指定倉庫的全部提交人的代碼提交 彙總與刪除彙總數組

注意:全部代碼行數爲0,統計結果中清除。 全部統計只統計master分支。bash

安裝: 把腳本中的倉庫路徑搜索修改成GitLab的存儲目錄。 統計結果存儲在/home目錄下面。gitlab

 

[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 code

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

#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 `it

doneast


doneform

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

相關文章
相關標籤/搜索