svn代码统计

分享一个自己写的svn代码统计的脚本,不喜绕行:

统计项目每个人修改的文件的个数和行数

#!/bin/bash
# 统计项目每个人修改的文件的个数和行数

Svn_pro=http://192.168.1.1/svn/project

# 版本库最后修改的信息
Now_date=`date ‘+%F‘`
next_date=`date -d "next day" +%Y-%m-%d`

#echo -e " 版本库最后修改信息: "
#svn info http://192.168.1.1/svn/project  --username  username --password password 2>/dev/null | awk ‘NR>6 ‘
(( user_count=${#Svn_user[@]}-1 ))

# 修改的文件
#list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project  --username  username --password password | awk ‘{print $2}‘ `
list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project  --username  username --password password | awk ‘{print $2}‘ `
list=(`echo $list_value`)
(( count=${#list[@]}-1 ))
for i in `seq 0 $count`
do
    edit=`svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  username --password password | awk ‘{print $2}‘ | grep -v "-" | wc -l`
    if [ $edit -ne 0 ];then
    #echo -e "-----------------------------------------------------------------------------------------------" >> $0.log
    #echo -e "${list[$i]}文件增加行数:" >> $0.log
    #svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  username --password password | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c
    svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  username --password password | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c >> $0.log
    fi
done

#echo -e "Author\t\tTotal lines"
awk ‘{sum[$2]+=$1}END{for(c in sum){printf "%-16s%-10s\n",sum[c],c}}‘ $0.log  > total
#echo "--------------------------------------------------------"
#echo -e "Change file\tAuthor"
cat $0.log | awk ‘{print $2}‘ | sort | uniq -c > file

echo -e "Author Change_file Total_lines"
awk ‘NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]" "$0;j++}‘ total file | awk ‘{print $4,$3,$1}‘

rm -f $0.log total file

统计代码修改的详情

#!/bin/bash
# 统计项目代码修改的详情
Svn_pro=http://192.168.1.1/svn/project

# 版本库最后修改的信息
Now_date=`date ‘+%F‘`
next_date=`date -d "next day" +%Y-%m-%d`

#echo -e " 版本库最后修改信息: "
#svn info http://192.168.1.1/svn/project   --username  username --password password 2>/dev/null | awk ‘NR>6 ‘
(( user_count=${#Svn_user[@]}-1 ))

# 修改的文件
#list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project   --username  xiaodx --password [email protected] | awk ‘{print $2}‘ `
list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project   --username  xiaodx --password [email protected] | awk ‘{print $2}‘ `
list=(`echo $list_value`)
(( count=${#list[@]}-1 ))
for i in `seq 0 $count`
do
    edit=`svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | wc -l`
    if [ $edit -ne 0 ];then
#   echo -e "-----------------------------------------------------------------------------------------------"
#   echo -e "\033[36m ${list[$i]}t文件增加行数:\033[0m" >> $0.log
    echo -e "${list[$i]}文件增加行数:" >> $0.log
#   svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c
    svn blame -r {$Now_date}:{$next_date}  ${list[$i]}  --username  xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c >> $0.log
    fi
done

原文地址:http://blog.51cto.com/11962757/2114549

时间: 2024-10-12 22:18:30

svn代码统计的相关文章

SVN代码统计工具StatSVN

StatSVN下载 下载地址:https://sourceforge.net/projects/statsvn/ StatSVN使用 使用须知 StatSVN的运行需要Java的运行环境,所有需要安装Java的运行环境(Java Runtime Environment).JRE可以从Sun的网站上下载.进行数据统计的时候需要用到JDK,也可以从网上下载(最好下载最新版的). StatSVN在使用中需要使用SVN的客户端,因此需要确保机器上安装了SVN的客户端. StatSVN安装 解压压缩包,到

svn代码统计工具的金额

StatSVN介绍 StatSVN是Java写开源统计程序,从statCVS从移植.从能Subversion版本号来获取信息库,该项目开发的叙述性说明,然后生成各种表格和图表.例:时间线.针对每一个开发人员的代码行数:开发人员的活跃程度:开发人员近期所提交的:文件数量:平均文件大小:最大文件.哪个文件是改动最多次数的:文件夹大小:带有文件数量和代码行数的Repository tree. StatSVN当前版本号能够生成一组包含表格与图表的静态HTML文档. StatSVN下载 StartSVN官

svn代码量统计工具

StatSVN介绍 StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表.比如:代码行数的时间线:针对每个开发者的代码行数:开发者的活跃程度:开发者最近所提交的:文件数量:平均文件大小:最大文件:哪个文件是修改最多次数的:目录大小:带有文件数量和代码行数的Repository tree.StatSVN当前版本能够生成一组包括表格与图表的静态HTML文档. StatSVN下载 StartSVN官

SVN代码上线流程

为了确保维护svn代码的正确性,特制定上传代码流程如下: 开发人员开发: 开发人员本地分支----取得svn最新代码(根据前一天的最后tag合并)-----代码开发----提交分支. 合并时候注意事项,对于冲突的文件看是不是自己本地正在修改的文件,不是的话就按照诛仙的tag来覆盖,否则按照本地,最好提前解决冲突问题(不好操作的话就被分好自己本地代码,讲SVN代码拿过来,好好看一下冲突冲突的问题),这样在回合的时候就可以按照自己分支来操作了(当然我们也要看一下,以防止别人先合并) 开发人员代码合并

在Windows Server 2008上部署SVN代码管理总结

这段时间在公司开发Flex程序,所以使用TortoiseSVN作为团队代码管理器,今天在公司服务器上部署SVN服务器,并实验成功,总结如下: 服务器环境: 操作系统:Windows Server 2008: SVN服务器端程序:VisualSVN Server 2.1.5:(http://www.visualsvn.com/ ) 客户端环境: 操作系统:Windows 7 32Bit: SVN客户端程序:TortoiseSVN-1.6.12.20536-win32-svn-1.6.15:(htt

简易的代码统计工具

/* 把所有 .cpp 文件放到与程序相同目录,ctrl+A 全选,F2重命名为 a (系统自动改为 a (1).cpp.a (2).cpp.a (3).cpp --), 输入文件个数,开始统计. 若出现异常,可以尝试吧所有文件重命名为 b (系统自动改为 b (1).cpp -- ) ,再重命名为 a */ #include <stdio.h>#include <stdlib.h> int main(){ const unsigned int fileNum = INT_MAX;

实战搭建SVN代码版本服务器

前言:公司要求搭建一台SVN代码版本管理服务器,用于管理所有代码资产: 项目架构图 1.环境安装 [[email protected]_centos ~]#yum –y install subversion mod_dav_svn [[email protected]_centos ~]#cat /etc/services |grep –color svn                                                       #查看己注册 svn      

gitinspector+jenkins 开发代码统计CI

gitinspector是一个python语言开发的开源的命令行下的代码统计工具,一般用于开发人员对自己的代码做统计. 命令行的一般用法: # gitinspector -wTHL /path/code/repository    // 自行执行看下效果,这里不再缀述 # gitinspector --format=html --timeline --localize-output -w /path/code/repository > /save/path/result.html // 生成ht

写了个代码统计工具

周末想统计下XCL-Charts到底写了多少行代码,就用Go语言写了个代码统计工具,效果还不错,统计速度也快. 就把统计报表部份今天完善了下,硬生生把很短的代码澎涨到200多行了. 除了必要的代码行数和文件总计外,增加了代码行数有300,500,1000,5000及5000以上这几个级别的代码文件个数统计功能. 同时,用户可以指定显示出代码行数大于等于某值的所有文件明细,并按从大到小顺序排列. 贴下效果: E:\XCLTools\src\crname>go run scounter.go -l=