公司需求统计Mos代码行数

方法一:用git

#!/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)统计

[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

  

最新文章

  1. Unity学习疑问记录之触摸点坐标
  2. 大批量GPS坐标转百度坐标
  3. 【Visual Lisp】表处理专题
  4. iOS开发——友盟分享
  5. HDFS 2中Namenode启动时WebUI的变化
  6. VS2010使用静态编译的qt库
  7. centos7 最小安装无ifconfig
  8. angular4.0如何引入外部插件2:declare方案
  9. 【玩转开源】BananaPi R2——移植RPi.GPIO 到 R2
  10. 跟随我在oracle学习php(12)
  11. 又见C++
  12. Linq to XML操作XML文件
  13. elasticsearch(6.2.3)安装Head插件
  14. luogu P4160 [SCOI2009]生日快乐
  15. every day a practice —— morning(4)
  16. SA9 collections
  17. 2018.09.11 bzoj2208: [Jsoi2010]连通数(bitset+floyd)
  18. 怎么实现Linux下的逆波兰计算器dc?
  19. simulink生成hdl的几个理解
  20. MEF学习总结(2)---Primitive层

热门文章

  1. [Vue warn]: You may have an infinite update loop in a component render function
  2. JavaScript —— 关于for in 与 for of 的区别
  3. Redis的客户端Jedis
  4. Linux系统Docker启动问题Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"
  5. python面向对象--item方法
  6. 【rabbitmq】解决SimpleAmqpClient创建连接时阻塞的问题
  7. objectMaaper 反序列化json字段多于或少于实体处理
  8. whetstone
  9. 22.Express框架——2019年12月19日
  10. 多边形面积计算公式 GPS经纬度计算面积