統計Git

公司需求統計Mos代碼行數python

方法一:用gitandroid

#!/bin/bash

read -p "輸入你要統計mos的分支:" branch

Mos_Project=(uusafe-prod-mos-app-inte uusafe-prod-mos-app-client uusafe-prod-mos-app-service uusafe-prod-mos-app-rest uusafe-prod-mos-base-inte uusafe-prod-mos-base-client uusafe-prod-mos-base-rest uusafe-prod-mos-base-service  uusafe-prod-mos-device-inte uusafe-prod-mos-device-client uusafe-prod-mos-device-rest uusafe-prod-mos-device-service uusafe-prod-mos-wrapping-inte  uusafe-prod-mos-wrapping-rest uusafe-prod-mos-wrapping-service uusafe-prod-mos-wrapping-client uusafe-prod-mos-gateway-inte uusafe-prod-mos-gateway-client uusafe-prod-mos-gateway-rest uusafe-prod-mos-gateway-service)
Users=(填寫開發人員的git帳號)

Since_Today=`date +%F --date="-3 month"`
Until_Today=`date +%F`
echo -e "\033[34m當前時間:${Since_Today},三個月以前:${Until_Today}\033[0m"

#建立一個臨時目錄
mkdir -p /tmp/statistics_git
for Project in ${Mos_Project[*]}
  do
    cd /tmp/statistics_git
    git clone ssh://xiaojin@192.168.1.29:29418/${Project} -b ${branch} &>/dev/null
    echo -e "\033[35m${Project} ${branch}:\033[0m"
    cd ${Project}
    for user in ${Users[*]}
       do
        git log --since==${Since_Today} --until=${Until_Today} --author="${user}" --pretty=tformat: --numstat | gawk -vuser="$user" '{ add += $1 ; subs += $2 ; loc += $1 - $2 ;if(NF==3)num+=1} END { printf "提交者: "user" 增長行數: %s 刪除行數 : %s 總共行數: %s 修改文件數: %s \n",add,subs,loc,num }'
    done
done

rm -fr /tmp/statistics_git

方法二:用python工具(gitstats)統計git

[root@platform_4 scripts]# cat android_statistics_gitsubmit.sh 
#!/bin/bash

read -p "輸入統計Android分支的代碼線:" branch

git_judge(){
    if [ $? -eq 0 ];then
         echo "正在拉去分支${branch}...."
    else
         echo "${branch}分支不存在"
         exit
    fi
}

main(){
    mkdir -p /tmp/statistics_android
    cd /tmp/statistics_android
    echo '正在拉取代碼......'
    git clone ssh://xiaojin@192.168.1.29:29418/app/android/portal -b ${branch} &>/dev/null
    git_judge
    #統計生成tar包
    cd /tmp/statistics_android/portal
    echo '正在統計代碼.....'
    /usr/local/src/gitstats/gitstats . android_${branch} &>/dev/null
    mkdir -p /opt/git_software/android
    tar zcf /opt/git_software/android/android_${branch}_`date +%F`_git.tar.gz android_${branch}
    rm -fr /tmp/statistics_android
    echo "文件生成路徑:/opt/git_software/android/android_${branch}_`date +%F`_git.tar.gz"
}

main
相關文章
相關標籤/搜索