现在的位置: 首页Linux教程 > 正文
统计git代码提交量的脚本
关键词:无 ┊ 来源: 原创收藏

可以统计在某个项目中,自己修改代码的行数,包括增加多少行,删除多少行。

可以统计当天,24小时内或全部时间内。使用时需要把代码中的author对应的值换成自己的名字。

代码如下:

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
Flash
Flash
  1. #!/bin/bash  
  2. function count() {  
  3.     local insert=0  
  4.     local delete=0  
  5.     while read line ;do  
  6.         current=`echo $line| awk -F',' '{printf $2}' | awk '{printf $1}'`  
  7.         if [[ -n $current ]]; then   
  8.             insert=`expr $insert + $current`  
  9.         fi  
  10.         current=`echo $line | sed -n 's/.*, //p' | awk '{printf $1}'`  
  11.         if [[ -n $current ]]; then  
  12.             delete=`expr $delete + $current`  
  13.         fi  
  14.     done < .tmp.count  
  15.     echo "$insert insertions, $delete deletions"  
  16. }  
  17.   
  18. function countAll() {  
  19.     git log --author=msdx --shortstat --pretty=format:"" | sed /^$/d >.tmp.count  
  20.     count;  
  21.     rm .tmp.count  
  22. }  
  23.   
  24. function countToday() {  
  25.     local current=`date +%s`;  
  26.     local begin=`date +%Y-%m-%d |xargs date +%s -d`;  
  27.     local minutes=$(($current - $begin));  
  28.   
  29.     git log --author=msdx --since="$minutes seconds ago" --shortstat --pretty=format:"" | sed /^$/d >.tmp.count  
  30.     count;  
  31.     rm .tmp.count  
  32.   
  33. }  
  34.   
  35. function countOneDay() {  
  36.     git log --author=msdx --since="1 days ago" --shortstat --pretty=format:"" | sed /^$/d >.tmp.count  
  37.     count;  
  38.     rm .tmp.count  
  39.   
  40. }  
  41.   
  42. if [[ ! -n $1 ]] || [[ $1 = "all" ]] ; then   
  43.     countAll;  
  44. elif [[ $1 = "oneday" ]]; then  
  45.     countOneDay;  
  46. elif [[ $1 = "today" ]]; then  
  47.     countToday;  
  48. else  
  49.     echo "args: all | oneday | today";  
  50. fi  
相关文章
    暂无相关文章
本文由 jack 发布于 1273天 7小时 18分钟前,目前已有 4264 人浏览
欢迎大家转载分享,请注明来源及链接;商业媒体转载请获得授权,谢谢合作!
 

添加评论