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:\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代码量统计工具

时间: 2024-10-11 18:10:36

svn代码量统计工具的相关文章

[statsvn]-svn代码量统计

用statasvn进行代码量统计的时候,第一步需要获取到项目的日志,但是我本机的svn1.4没有安装命令行,重新运行1.4的安装包也没有命令行的选项... 那就升级到最新的svn1.8好了,下载最新的svn安装包,按照要求直接运行了两次安装,第一次安装,第二次修复,然后重点来了,重启的时候报MSVCP120.dll丢失的错误,原来的svn也不能用了啊 然后在网上找到一个解决方案: http://6.scdx3.crsky.com/soft/201407/DirectX_Repair-v3.2.z

代码量统计工具类

一:先看运行结果 二:工具类源码 package codeCounter; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Service { public static int[] statistics(File file){ i

&ldquo;代码量统计脚本&rdquo;

概述 本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点. 代码量统计程序 文件名称,count_code_line.sh 123456789101112131415161718192021222324252627282930313233343536 #!/bin/bash # 统计代码行数 去除空格和注释# author: by wangxintang function count_dir(){ total1=0 for input in $* do count=`fi

IDEA 代码量统计(Statistic)

IDEA 代码量统计(Statistic) 1.1 前言 项目到了一定阶段,都会想要看看项目的代码量情况,这里主要使用插件Statistic进行代码统计查看. 1.2 安装插件步骤 找到插件市场入口并安装插件:File-->Setting...-->Plugins,按照图片步骤,1点击安装tab页,2输入Statistic关键字,3勾选插件,4点击OK进行安装: 安装成功后重启IDEA 重启完毕后等待编辑器初始化相关信息,然后在编辑器左下方找到Statistic插件,点击打开主界面: 点击Re

git代码量统计(转载)

git统计某人代码量 指定用户名版 git log --author="your_name_here" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' 结果示例:added lines:

Mac OS X代码量统计程序(Python版)

方便统计各种平台项目的代码量,主要用到了find指令来进行处理的详情点击打开链接: 源代码下载点击打开链接 源代码如下: # -*- coding: utf-8 -*- ''' Created on Jul 18, 2014 @author: Jayhomzhou @note: 计算注释以及代码的总行数(即代码量) ''' import subprocess def countCodes(codePath, fileTypes): typeStrs = '' for ft in fileType

shell scripts 之 代码量统计

代码统计 code如下: xargs说明:xargs 读入stdin的值, 并默认以空白或者回车作为分隔符,将分割的值作为参数传给后面紧接着的的命令行操作.-d  --delim  : 指定分隔符:-a  : 从文件中读入数据; wc说明:统计指定文件中的字符数,字节数,行数用法格式: wc [options] [filename]options说明:-c  : 统计字节数:-m  : 统计字符数:-w  : 统计字数:-l  : 统计行数:-help  : 帮助: --------------

git 代码量统计

使用 git bash , 进入项目根目录 git log --author="your_id" --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }' -

svn代码统计工具的金额

StatSVN介绍 StatSVN是Java写开源统计程序,从statCVS从移植.从能Subversion版本号来获取信息库,该项目开发的叙述性说明,然后生成各种表格和图表.例:时间线.针对每一个开发人员的代码行数:开发人员的活跃程度:开发人员近期所提交的:文件数量:平均文件大小:最大文件.哪个文件是改动最多次数的:文件夹大小:带有文件数量和代码行数的Repository tree. StatSVN当前版本号能够生成一组包含表格与图表的静态HTML文档. StatSVN下载 StartSVN官