zoukankan      html  css  js  c++  java
  • 使用statsvn统计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:MyProjectslogfile.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  

           [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  

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

    查看统计结果

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

    示例图片:

    StatSVN优缺点分析

    优点

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

    缺点

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

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

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/tmlee/p/5390545.html
Copyright © 2011-2022 走看看