`
modabobo
  • 浏览: 505944 次
文章分类
社区版块
存档分类
最新评论

svn代码量统计工具

 
阅读更多

StatSVN介绍

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


StatSVN下载

StartSVN官网地址为:http://www.statsvn.org/index.html

StartSVN的下载页面为:http://www.statsvn.org/downloads.html

现在官网上最新的版本为:statsvn-0.7.0


StatSVN使用

使用须知

StatSVN的运行需要Java的运行环境支持,所以大家需要安装Java的运行环境(Java Runtime Environment)。JRE可以从Sun的网站上下载。

Statsvn在使用中需要使用SVN的客户端,因此需要确保机器上可以访问到SVN的客户端命令

Checkout工作拷贝

首先从SVN仓库中checkout一个需要统计的路径(如果在工作目录下进行统计,首先请更新,保证工作区中的版本是最新的版本,确保统计结果的准确性),例如我把我的某个路径下的工程checkout在我的电脑上的D:\MyProjects路径下。

生成svn log文件

首先通过命令行进入工作目录:D:\MyProjects,再使用svn log -v --xml > logfile.log的命令,其中 logfile.log为log文件的名称,可以根据需要自行定义。这样就在工作拷贝的目录下生成一个名称为logfile.log的文件。

注:要在命令行中使用svn命令,在安装TortoiseSVN时必须选择安装commend组件,可以在cmd命令行里输入svn help测试一下该组件是否安装,如果未安装是无法使用svn log命令的。如果能够操作svn server的话也可以直接在服务器上生成svn log然后下载到本地来使用

调用StatSVN进行统计

首先我们把从官网上下载的statsvn-0.7.0.zip包解压缩到D:\statsvn-0.7.0目录下

通过命令行进入D:\statsvn-0.7.0目录

调用命令java -jar statsvn.jar D:\MyProjects\logfile.log D:\MyProjects,命令运行成功即完成了统计工作。

该命令的格式是java -jar statsvn.jar [options] <logfile> <checked-out-module>

参数<logfile>为前一步中生成的svn log文件,<checked-out-module>为checkout工作拷贝目录,注意两个参数都要列出正确的全路径,否则会提示错误如logfile.log找不到等等

  1. <logfile>pathtothesvnlogfileofthemodule
  2. <directory>pathtothedirectoryofthecheckedoutmodule

[options]为可选参数,该参数格式及用法如下:

  1. Someoptions:
  2. -versionprinttheversioninformationandexit
  3. -output-dir<dir>directorywhereHTMLsuitewillbesaved
  4. -include<pattern>includeonlyfilesmatchingpattern,e.g.**/*.c;**/*.h
  5. -exclude<pattern>excludematchingfiles,e.g.tests/**;docs/**
  6. -tags<regexp>showmatchingtagsinlinesofcodechart,e.g.version-.*
  7. -title<title>Projecttitletobeusedinreports
  8. -viewvc<url>integratewithViewVCinstallationat<url>
  9. -trac<url>integratewithTracat<url>
  10. -bugzilla<url>integratewithBugzillainstallationat<url>
  11. -username<svnusername>usernametopasstosvn
  12. -password<svnpassword>passwordtopasstosvn
  13. -verboseprintextraprogressinformation
  14. -xdocoptionalswitchoutputtoxdoc
  15. -xmloptionalswitchoutputtoxml
  16. -threads<int>howmanythreadsforsvndiff(default:25)
  17. -concurrency-threshold<millisec>switchtoconcurrentsvndiffif1stcall>threshol
  18. -dumpdumptheRepositorycontentonconsole
  19. -charset<charset>specifythecharsettouseforhtml/xdoc
  20. -tags-dir<directory>optional,specifiesthedirectorfortags(default'/tags/')
  21. Fulloptionslist:http://www.statsvn.org


1. 先导出svn log

svn log -v --xml -rStartrevision:Endrevision > svn.log local_project
其中Startrevision和Endrevision用来导出一个revision段的svn日志.local_project是svn上的project checkout到本地的结果.


2. 通过statsvn工具做分析
java -jar statsvn.jar svn.log local_project
运行完成后,就会在$PWD(unix下)或者%CD%(windows下)下生成对应的分析文件,在index.html文件中就有代码量统计.



#!/bin/bash

svn_dir='/home/homer/work/code_svn/weiguan'
statsvn_dir='/home/homer/work/tool-server/statsvn-0.7.0/statsvn.jar'

log_dir=svnstat
log_file="$log_dir/svnstat.log"
log_day="$log_dir/2014-01-01_00:00:00"

version_start=4150
version_end=4159

function statsvn() {
    cd $svn_dir

    svn up

    if [ ! -d $log_dir ];then
        mkdir $log_dir
    fi

    date=$(date "+%Y-%m-%d_%H:%M:%S")
    echo "$date"
    
    lines=`find . -name *.java | xargs wc -l | sort -n`
    echo "total code lines : $lines"

    version_end=`svn log -l1 | sed -n 2p | awk '{print $1}' | cut -d "r" -f2`
    echo "version_start : $version_start; version_end : $version_end"
    svn log -v --xml -r$version_start:$version_end > $log_file

    log_day="$log_dir/$date"
    java -jar $statsvn_dir $log_file . -output-dir $log_day > /dev/null 2>&1


    google-chrome $log_day/index.html &
}

statsvn


参考推荐:

statsvn统计svn中的代码量

统计svn上代码量的方法--使用statsvn工具

统计分析svn用户每天提交的代码数

一个基于SVN 的代码提交量统计工具

StatSVN


分享到:
评论

相关推荐

    svn代码量统计工具StatSVN的使用

    svn代码量统计工具StatSVN的使用

    【SVN代码库数据统计分析工具】

    基于TortoiseSVN API接口实现的周期性目录用户使用情况数据统计分析工具

    SVN资源库代码统计工具

    SVN代码统计工具: 1、 statsvn-0.4.1.zip,下载后放入E盘根目录底下,解压成文件夹statsvn。 2、 本地必须有svn客户端跟jdk环境。 3、 checkout 希望统计的代码到本地。 4、 到dos命令窗口,把目录切换到刚checkout的...

    统计SVN代码提交次数工具-statSVN

    统计SVN代码提交次数工具-statSVN /workspace 最新版本所在的目录  -include **/*.cpp:**/*.h 默认情况下statsvn统计指定目录下的所有文件,这个参数可以设置指定统计具体文件  -exclude xxx/** 表示不统计的内容...

    svn代码行变更统计工具

    NULL 博文链接:https://45121739-163-com.iteye.com/blog/1390144

    statsvn代码量统计工具

    StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表。比如:代码行数的时间线;针对每个开发者的代码行数;开发者的活跃程度;...

    统计SVN服务器项目的代码量

    将需要统计的svn路径下的代码checkout到本地工作目录里,版本可以自由选择,如果你要统计某个版本下的代码量checkout出对应的版本即可,如果需要统计最近的版本时的代码量,checkout最新版本。

    Shell脚本实现的基于SVN的代码提交量统计工具

    主要介绍了Shell脚本实现的基于SVN的代码提交量统计工具,本文直接给出实现脚本代码,需要的朋友可以参考下

    直接拿来使用无任何BUG-SVN的可视化日志统计工具StatSVN.rar

    为什么要用StatSVN统计工具? 程序员: 我想看看我对项目贡献了多少,比...StatSVN很好的统计工具,能帮你统计团队成员各自的编写量,代码总数,提交情况,文件数量等情况,并且以html网页图表的方式发布统计结果。

    idea :插件Statistic 统计代码数量和行数

    显示项目统计数量。 这个插件显示的是按扩展名排序的文件,以及大小、行数、LOC等。 用户可以选择统计(Project/Module/Package/File)范围,选择范围后需要点击Refresh,。 (这个插件需要Java1.8)

    根据HG导出日志,统计修改代码行数

    在网上查找到了SVN的代码统计工具,但是HG却查不到,正好领导要统计工作量,所以就根据HG导出的日志自己写了个。 唯一的BUG就是如果某个人上传了某个文件,那么这个文件的所有数据都将被记入。所以不是很准,但是除...

    轻量级覆盖率测试工具logcover.zip

    实现:• 根据svn,对源代码进行轻量级静态分析,获得代码中异常日志打印的原始信息• 收集单机/多机测试日志,并对日志文件进行parse、filter、merge等处理,得到实际覆盖的日志信息• 根据代码中的原始日志信息和...

Global site tag (gtag.js) - Google Analytics