使用statsvn统计svn中的代码量

2023-11-13

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

<logfile>          path to the svn logfile of the module
<directory>        path to the directory of the checked out module

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

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不考虑修改的代码行数,只考虑与上一版本相比新增(+)与删除(-)的代码行数。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用statsvn统计svn中的代码量 的相关文章

  • OJDBC8 12.2.0.1下载

    一 进入oracle官网 注册oracle账户 登入oracle官网 二 在oracle官网找到ojdbc8的下载地址 地址如下 https www oracle com database technologies jdbc ucp 122

随机推荐

  • The Backus-Naur Form (BNF) & The Extended Backus-Naur Form (EBNF)

    The Backus Naur Form BNF The Backus Naur Form BNF is a notation used for formal description of the syntax of programming
  • Web前端学习(四)HTML5语义化标签

    语义化 语义化实际上就是将用一些标签使浏览器能够识别到标签含义 比如什么时候使用标题标签 什么时候使用段落标签 适当的使用这些标签使浏览器能够识别到标签的含义 并作出相应的响应 语义化标签 段落标签 p p p 段落文本 p 新开始一段文字
  • Mac电脑配置李沐深度学习环境[pytorch版本]使用vscode

    文章目录 第一步 M1芯片安装Pytorch环境 安装Miniforge 创建虚拟环境 安装Pytorch 第二步 下载李沐Jupyter文件 第三步 配置vscode 参考 第一步 M1芯片安装Pytorch环境 安装Miniforge
  • [视频学习] 寻根探源话佛教

    根源篇 印度 延續篇 緬甸 穿越興都庫什山脈 延續篇 泰國 05 END 延續篇 中國
  • Windows Server 2012 AD DS环境下域用户自动加入本地管理员组

    刚加入域控 需求 域用户加入域之后 此用户的域账号自动加入本地管理员组 我们的Server2012是一台域控制器 然后再找一台Win 7做客户机 把域用户加入本地管理员组 使用的就是 用户配置首选项中 本地用户和组 用于将登录帐号自动加入本
  • 选择正确的C/C++ Runtime Library

    解决下面的编译 链接问题过程中 有一些新的认识 warning LNK4049 locally defined symbol error LNK2001 unresolved external symbol 本文意在总结 讨论的中心自然也正
  • 查看和修改AWR配置

    有时遇到系统遇到复杂问题 处理周期长 需要保留系统的快照周期 便于分析问题 这时 需要延长延长快照时间周期 默认一般是一周时间 一 查看当前AWR配置 10g版本中默认是保留7天 11g版本中默认保留8天 采集间隔是1小时 这个信息可以从D
  • java.net.SocketException四大异常解决方案

    java net SocketException如何才能更好的使用呢 这个就需要我们先要了解有关这个语言的相关问题 希望大家有所帮助 那么我们就来看看有关java net SocketException的相关知识 第1个异常是 java n
  • 疯壳Android嵌入式Linux平板开发教程3-4亮度及音量调节

    购买链接 https fengke club GeekMart su fHnaDyD1o jsp 视频地址 https fengke club GeekMart su f5W0Cuz3p jsp 官方QQ群 457586268 音量调节 点
  • [人工智能-深度学习-40]:英伟达GPU CUDA 编程框架简介

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121220362 目录 第1章 什么C
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • IOS app 上线流程

    网上创建一份app资料等待对代码上传对接 登陆后 gt 右边 gt iTunes Connect gt 创建app资料
  • pom文件中的dependencyManagement和dependencies的区别

    dependencyManagement 只是声明依赖 并不实现引入 因此子项目中需要显示的声明需要用的依赖 如果不在子项目中声明依赖 是不会从父项目中继承下来的 只有在子项目中写了该依赖 并且没有指定版本 才会从父项目中继承该项 并且ve
  • Android---简易的底部导航栏

    目录 一 activity main xml布局 二 给ViewPager2 创建适配器 三 ViewPager2 数据源 四 MainActivity java类 1 初始化数据源 2 ViewPager2 页面改变监听 3 Bottom
  • 学会问问题

    推荐文档 学会问问题 目录 三句话原则 你就是孙子 问问题过程 第一步 学会问好 示例如下 第二步 有屁快放 问问题需要加上的前缀或者后缀 示例如下 第三步 介绍自己的框架 示例如下 第四步 介绍自己的解决思路 示例如下 第五步 根据大佬的
  • TCP 传输控制协议

    目录 可靠机制 5可靠 1 确认应答机制 2 超时重传机制 3 连接管理机制 建立连接 三次握手 断开连接 四次挥手 第2 3个数据报为啥没有合并 第2 3个数据报是否可以合并 了解 服务端出现大量的close wait 原因 为什么要四次
  • 机器学习 | 优秀Tensorflow开源项目汇总(上)

    1 Open model zoo 预先训练的深度学习模型和样本 高质量且快速 https github com opencv open model zoo 2 Deep Learning In Production https github
  • Tongweb部署JmReport,打成war包部署,启动正常,前台访问404

    jar改war改造 修改pom文件
  • CRM安装(二)

    7 安装CRM Server及Reporting Extensions 我这里首先启用虚拟机中服务器的远程桌面连接 在 这台电脑 的属性中 点击左面的 远程设置 在弹出的对话框中选择 允许远程连接到此计算机 然后应用 最后确定 这样我就可以
  • 使用statsvn统计svn中的代码量

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