java统计svn文件数量_统计SVN代码行数工具-StatSVN - valleylord - 博客园

1. 获取SVN log:svn log -v -r 17461:39224 --xml > logfile.log

2. 用StatSVN分析:java -jar ~/project/statsvn-0.7.0/statsvn.jar logfile.log

StatSVN介绍

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

StatSVN下载

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

StatSVN使用

使用须知

StatSVN的运行需要Java的运行环境支持,所以大家需要安装Java的运行环境(Java RuntimeEnvironment)。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]

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

Java代码          path to the svn logfile of the module

        path to the directory of the checked out module

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

Java代码Some options:

-version            print the version information and exit

-output-dir 

-include         include only files matching pattern, e.g. **/*.c;**/*.h

-exclude     exclude matching files, e.g. tests/**;docs/**

-tags         show matching tags in lines of code chart, e.g. version-.*

-title 

            Project title to be used in reports

-viewvc          integrate with ViewVC installation at 

-trac            integrate with Trac at 

-bugzilla            integrate with Bugzilla installation at 

-username  username to pass to svn

-password  password to pass to svn

-verbose            print extra progress information

-xdoc                   optional switch output to xdoc

-xml                    optional switch output to xml

-threads             how many threads for svn diff (default: 25)

-concurrency-threshold  switch to concurrent svn diff if 1st call>threshol

-dump               dump the Repository content on console

-charset         specify the charset to use for html/xdoc

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

文章2:

利用SVN log命令查看提交日志信息详解

内容提示:本文将详细介绍通过SVN log命令查看提交日志信息的方法。

log: 显示一组版本与/或文件的提交日志信息。

用法:

1、log [PATH]

2、log URL[@REV] [PATH...]

1、显示本地 PATH (默认: “.”) 的日志信息。默认的版本范围是 BASE:1。

2、显示 URL 中 PATH (默认: “.”) 的日志信息。如果指定了 REV,就从 REV开始查找 URL,版本范围是 REV:1。否则就从 HEAD 开始查找 URL,版本范围是 HEAD:1。

可以指定多个 “-c” 或 “-r” 选项 (但是不允许同时使用 “-c” 和 “-r” 选项),以及混合使用前向和后向范围。

使用 -v 时,在日志信息中显示受影响的路径名。

使用 -q 时,不显示日志信息主体 (请注意,它可与 -v 并存)。

每条日志信息只会显示一次,即使指定了此版本涉及到的多个路径。默认日志信息会追溯复制历史;使用 –stop-on-copy 可以关闭这种行为,这可以用来找出分支点。

范例:

有效选项:

-r [--revision] ARG  : ARG (一些命令也接受ARG1:ARG2范围)

版本参数可以是如下之一:

NUMBER   版本号

‘{‘ DATE ‘}’ 在指定时间以后的版本

‘HEAD’   版本库中的最新版本

‘BASE’   工作副本的基线版本

‘COMMITTED’  最后提交或基线之前

‘PREV’   COMMITTED的前一版本

-q [--quiet]      : 不打印信息,或只打印概要信息

-v [--verbose]     : 打印附加信息

-g [--use-merge-history] : 从合并历史使用/显示额外信息

-c [--change] ARG    : 版本 ARG 引起的改变

–targets ARG      : 传递文件 ARG 内容为附件参数

–stop-on-copy     : 查看历史不要跨越不同的副本

–incremental      : 给予适合串联的输出

–xml          : 输出为 XML

-l [--limit] ARG    : 日值项最大值

–with-all-revprops  : 获取所有版本属性

–with-no-revprops   : 没有找回版本属性

–with-revprop ARG   : 获取版本属性 ARG

全局选项:

–username ARG     : 指定用户名称 ARG

–password ARG     : 指定密码 ARG

–no-auth-cache    : 不要缓存用户认证令牌

–non-interactive    : 不要交互提示

–trust-server-cert  : 不提示的接受未知的 SSL 服务器证书(只用于选项 “–non-interactive”)

–config-dir ARG    : 从目录 ARG 读取用户配置文件

–config-option ARG  : 以下属格式设置用户配置选项:FILE:SECTION:OPTION=[VALUE]

例如:

servers:global:http-library=serf

常用操作

1.查看最近3个版本日志

svn log [PATH] -v -l3

2.查看某两个版本,用来对比

svn log -r 14:15

3.日志放入文件

$ svn log -r 14 > mylog

$ svn log -r 19 >> mylog

$ svn log -r 27 >> mylog

$ cat mylog

或者

$ svn log –incremental -r 14 > mylog

$ svn log –incremental -r 19 >> mylog

$ svn log –incremental -r 27 >> mylog

我的常用命令

查看2013.01.01~2013.07.16的svn log

1svn log -v --xml -r {2013-01-01}:{2013-07-16} > logfile.log

运行statsvn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

领域驱动设计和开发实战总结

原文见:http://www.infoq.com/cn/articles/ddd-in-practice 转载于:https://www.cnblogs.com/ego/archive/2012/03/03/2378104.html

php微信小程序多图上传,tp5实现微信小程序多图片上传到服务器功能

最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助。1,小程序端:在wxml文件中:删除点击上传作业在js文件中:Page({/*** 页面的初始…

技巧:在 C/C++中如何构造通用的对象链表

(转载至:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip02/,感谢T. W. Burger先生) 一个简化的问题示例 链表的难点在于必须复制链表处理函数来处理不同的对象,即便逻辑是完全相同的。例如: 两个结构类似的链表 st…

php csv转excel 双引号,PHP高效导出Excel(CSV)

CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。如果你导出的Excel没有什么高级用法的话,只是做导出数据用那么建议使用本方法,要比PHPexcel要高效的多。二十万数据导出大概需要2到3秒。/*** 导出excel(csv)* data …

linux php 上级目录,Linux目录架构详解_php

linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”,亲爱的读者,您都了解这些目录的含义吗?ls -l / 遍历文件系统(点击看大图)本文将引领您浏览…

t-sql中的事务控制及错误处理

------------------------------------------------事务控制----------------------------------------------------- Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。begin tran表示开始事务, commit tran表示提交事务…

ADT

ADT:https://dl-ssl.google.com/android/eclipse/ SDK:http://developer.android.com/sdk/index.html转载于:https://www.cnblogs.com/Robbery/archive/2012/03/08/2385892.html

《那些年啊,那些事——一个程序员的奋斗史》——79

旧的4.3'主板是废弃了,新的带CMMB的板子开始了。对于新的板子来说,其实只是在旧的板子上做改动,比如删掉蓝牙模块啊,去掉视频输入啊等;最大的不同,只是根据Telechips的原理图增加CMMB部分而已。…

Win配置Apache+mod_wsgi+django环境+域名

转自:http://liluo.org/2010/05/win-apache-mod_wsgi-django-domain/ Python是落落的最爱,Django是Python web framework中的佼佼者,所以一直超爱。当然,Python web server也有N多选择,这里落落使用Apachemod_wsgi来配…

screen执行php,Linux中screen命令及使用方法

Screen简介Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。GUN Screen&am…

CSS的历史与工作原理

1. 浏览器的发展与CSS网页浏览器主要通过HTTP协议连接网页服务器而取得网页,HTTP容许网页浏览器送交资料到网页服务器并且获取网页。目前最常用的 HTTP 是 HTTP/1.1,这个协议在RFC2616中被完整定义。HTTP/1.1 有其一套Internet Explorer并不完全支援的标…

java类可选,java – 是否有类可选,但非可选的类?

它是方便的声明函数映射值和消费它们,如果它们存在。在你有几个强制对象和几个可选的情况下,我发现自己包装在Optional.of(mandatoryObject)中的其他人,所以我可以使用相同的表达式,而不必向后写。Food vegetables Food.someVege…

数据库字符串处理函数

在数据库操作中,经常要进行字符串的拼接和替换等操作。下面总结归纳如下: 示例数据表people如下: 1 sql server数据库中的sql语句可以直接用 号进行字符串的拼接。举例如下: select Name ‘ ’ gentle as message from people …

[zz]Apache Thrift学习小记

参考: http://incubator.apache.org/thrift/ http://wiki.apache.org/thrift/FrontPage http://jnb.ociweb.com/jnb/jnbJun2009.html非常好的入门教程 http://developers.facebook.com/thrift/thrift-20070401.pdfthrift开发者写的论文 http://wiki.apache.org/thri…

php引用python出现502,【已解决】python执行出错:HTTPError: HTTP Error 502: Bad Gateway

【已解决】python执行出错:HTTPError: HTTP Error 502: Bad Gateway【背景】某此脚本执行,出现错误:LINE 1687 : ERROR Unknown Error !Traceback (most recent call last):File “E:WebServerWordPressto_wphi-baidu-mover_v2hi-baidu-mo…

can't load apple.laf.AquaLookAndFeel (Ant in Eclipse can't find it

转载自:http://lists.apple.com/archives/java-dev/2004/Oct/msg00529.html Re: "cant load apple.laf.AquaLookAndFeel" (Ant in Eclipse cant find it) Subject: Re: "cant load apple.laf.AquaLookAndFeel" (Ant in Eclipse cant find it)Fr…

php中的会话控制器,php – codeigniter检查每个控制器中的用户会话

另一个选项是创建基本控制器。将函数放在基本控制器中,然后继承。要在CodeIgniter中实现这一点,请在应用程序的libraries文件夹中创建一个名为MY_Controller.php的文件。class MY_Controller extends Controller{public function __construct(){parent::…

EXT.NET高效开发(一)——概述

之前就有想法说说这方面,直到看到我上一篇博客《EXT.NET复杂布局(一)——工作台》的回复: 小龙3:ext.net 比使用傳統的webform控件开发时间多多少? 我就决定提前写这一系列了。小龙3应该感到荣幸。嘿嘿。 相…

php 类的注释标准,php标准注释

文件头部模板/***这是一个什么文件**此文件程序用来做什么的(详细说明,可选。)。* author richard* version $Id$* since 1.0*/函数头部注释/*** some_func* 函数的含义说明** access public* param mixed $arg1 参数一的说明* param mixed $arg2 参数二的说明* par…

前端学习(417):京东制作页面25中间部分的准备工作

引入index.css作为中部样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Comp…