• 使用statsvn统计svn中的代码量


    FROM http://chenzhou123520.iteye.com/blog/1436653

    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的文件。

    调用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找不到等等。

    Java代码
    1. <logfile>          path to the svn logfile of the module  
    2. <directory>        path to the directory of the checked out module 
    <logfile>          path to the svn logfile of the module
    <directory>        path to the directory of the checked out module

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

    Java代码
    1. Some options:  
    2. -version            print the version information and exit  
    3. -output-dir <dir>         directory where HTML suite will be saved  
    4. -include <pattern>        include only files matching pattern, e.g. **/*.c;**/*.h  
    5. -exclude <pattern>    exclude matching files, e.g. tests/**;docs/**  
    6. -tags <regexp>        show matching tags in lines of code chart, e.g. version-.*  
    7. -title <title>            Project title to be used in reports  
    8. -viewvc <url>         integrate with ViewVC installation at <url>  
    9. -trac <url>           integrate with Trac at <url>  
    10. -bugzilla <url>           integrate with Bugzilla installation at <url>  
    11. -username <svnusername> username to pass to svn  
    12. -password <svnpassword> password to pass to svn  
    13. -verbose            print extra progress information  
    14. -xdoc                   optional switch output to xdoc  
    15. -xml                    optional switch output to xml  
    16. -threads <int>            how many threads for svn diff (default: 25)  
    17. -concurrency-threshold <millisec> switch to concurrent svn diff if 1st call>threshol  
    18. -dump               dump the Repository content on console  
    19. -charset <charset>        specify the charset to use for html/xdoc  
    20. -tags-dir <directory>     optional, specifies the director for tags (default '/tags/')  
    21. Full options list: http://www.statsvn.org 
    Some options:
    -version           	print the version information and exit
    -output-dir <dir>  		directory where HTML suite will be saved
    -include <pattern> 		include only files matching pattern, e.g. **/*.c;**/*.h
    -exclude <pattern> 	exclude matching files, e.g. tests/**;docs/**
    -tags <regexp>     	show matching tags in lines of code chart, e.g. version-.*
    -title <title>     		Project title to be used in reports
    -viewvc <url>      	integrate with ViewVC installation at <url>
    -trac <url>        	integrate with Trac at <url>
    -bugzilla <url>    		integrate with Bugzilla installation at <url>
    -username <svnusername> username to pass to svn
    -password <svnpassword> password to pass to svn
    -verbose           	print extra progress information
    -xdoc               	optional switch output to xdoc
    -xml                	optional switch output to xml
    -threads <int>        	how many threads for svn diff (default: 25)
    -concurrency-threshold <millisec> switch to concurrent svn diff if 1st call>threshol
    -dump              	dump the Repository content on console
    -charset <charset> 		specify the charset to use for html/xdoc
    -tags-dir <directory> 	optional, specifies the director for tags (default '/tags/')
    Full options list: http://www.statsvn.org
    

    查看统计结果

    上述命令运行成功后,可以看到在D:\MyProjects目录下生成一组包括表格与图表的静态HTML文档。可以用浏览器打开index.html查看统计结果。

    示例图片:

    StatSVN优缺点分析

    优点

    StatSVN会把当前SVN库的状态用图片和图表的方式展现出来,可以按不同分类分别展开,功能强大。

    缺点

    StatSVN统计的是所有代码行,包括注释和空行,但一般度量要求是有效代码行,在分析时需要注意这一点。

    StatSVN不考虑修改的代码行数,只考虑与上一版本相比新增(+)与删除(-)的代码行数。

  • 相关阅读:
    httpmime-session 会话保持
    5.5 准备创建bean
    5.4 获取单例
    当有“Button1.Attributes.Add("onclick", "return confirm('你确定要保存修改吗?')");”时,验证控件失效的解决方法
    asp.net刷新本页面的六种方法总结
    return 、break和continue的区别和作用
    OnClientClick事件
    抽象接口
    C# 中的EventHandler实例详解-转
    GridView点击行触发SelectedIndexChanged事件
  • 原文地址:https://www.cnblogs.com/suriyel/p/2870638.html
Copyright © 2020-2023  润新知