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的client,因此须要确保机器上能够訪问到SVN的client命令

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>          path to the svn logfile of the module
  2. <directory>        path to the directory of the checked out module

[options]为可选參数,该參数格式及使用方法例如以下:

  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

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代码统计工具的金额的更多相关文章

  1. windows10 中 svn 代码统计工具 StatSVN 使用详解

    1.下载TortoiseSVN 下载地址 ps:安装时务必选上命令行的svn命令. 2.下载StatSVN 官网地址 官网上目前时0.7.0版本,我的svn是1.12.0版本,运行时会报错: 所以建议 ...

  2. python 练习(一)代码统计工具的实现

    最近部门成立了一个python学习小组,旨在让大家在做项目中开始成长起来,于是老大就给布置了第一个小任务:代码统计工具,具体的需求如下: 需求: . 能够统计指定目录下C++程序的代码行数. . C+ ...

  3. Python实现代码统计工具——终极加速篇

    Python实现代码统计工具--终极加速篇 声明 本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对 ...

  4. Python实现C代码统计工具(四)

    目录 Python实现C代码统计工具(四) 标签: Python 计时 持久化 声明 运行测试环境 一. 自定义计时函数 1.1 整个程序计时 1.2 代码片段计时 1.3 单条语句计时 二. 性能优 ...

  5. Python代码统计工具

    目录 Python代码统计工具 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python代码统计工具 标签: Python 代码统计 声明 本文将对<Python实现C代码统计工具(一 ...

  6. Python实现C代码统计工具(三)

    目录 Python实现C代码统计工具(三) 声明 一. 性能分析 1.1 分析单条语句 1.2 分析代码片段 1.3 分析整个模块 二. 制作exe Python实现C代码统计工具(三) 标签: Py ...

  7. Python实现C代码统计工具(二)

    目录 Python实现C代码统计工具(二) 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python实现C代码统计工具(二) 标签: Python 代码统计 声明 本文将对<Pytho ...

  8. Python实现C代码统计工具(一)

    目录 Python实现C代码统计工具(一) 声明 一. 问题提出 二. 代码实现 三. 效果验证 四. 后记 Python实现C代码统计工具(一) 标签: Python 代码统计 声明 本文将基于Py ...

  9. C++代码统计工具

    自己前几天写的C++代码统计工具. http://pan.baidu.com/s/17SnnH

随机推荐

  1. J2EE SSH学习(二)安装Eclipse插件和第一个Eclipse项目

    (一)安装Eclipse插件 Eclipse有很多功能很强大的插件,我现在作为一个菜鸟只知道插件的功能通常都很牛叉实用或者很有趣,那么该怎么安装Eclipse插件呢? 我使用的是Eclipse 4.3 ...

  2. 【状态DP】 HDU 1074 Doing Homework

    原题直通车:HDU  1074  Doing Homework 题意:有n门功课需要完成,每一门功课都有时间期限t.完成需要的时间d,如果完成的时间走出时间限制,就会被减 (d-t)个学分.问:按怎样 ...

  3. Linux经常使用命令(十一) - more

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最主要的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

  4. 细说UI线程和Windows消息队列

    在 Windows应用程序中,窗体是由一种称为“ UI线程( User Interface Thread)”的特殊类型的线程创建的. 首先, UI线程是一种“线程”,所以它具有一个线程应该具有的所有特 ...

  5. JSP中两种include的区别

    首先说明这两种都是什么: <%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去 ...

  6. Phpcms V9 所有的中文变量

    $LANG['start_update_category'] = '开始更新栏目页 ...'; $LANG['start_to_end_id'] = '" 第{page} - {endpag ...

  7. Java输出当前的日期(年月日时分秒毫秒)

    package test.remote.tools.combine; import java.text.SimpleDateFormat; import java.util.Calendar; imp ...

  8. hdu 4039 The Social Network

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4039 题目分类:字符串+bfs 题意:给一个人际关系图,根据关系图,给一个人推荐一个人认识 题目分析: ...

  9. ZOJ 1171 Sorting the Photos

    1. 题目描述 给你一叠照片,有的正面朝上,有的反面朝上,朝上的用字母U,朝下的用字母D 可以从一个位置开始到最顶端,把这一叠拿出来,反转,然后再放回那一叠照片上面. 试求出最少的翻转次数,使所有的照 ...

  10. Houdini Pyro流体的插值变速

    用简单的节点尝试了下Houdini流体的变速,这里的流体指的是Pyro,而不是FLIP.FLIP仅仅须要记录ID属性然后TimeBlend & TimeShift就可以. Vimeo 上图是一 ...