背景:需要统计一段时间内上传到SVN服务器的代码行数,SVN没有自带功能,不过可以通过使用一个Java工具:satasvn.jar来快速完成统计

svn log -v --xml G:\IdeaWorkspace\smp_web\smp_web > G:\statsvn\smp_web\smp_web_svn.logjava -jar statsvn.jar G:\statsvn\smp_web\smp_web_svn.log  G:\IdeaWorkspace\smp_web\smp_web

第一个命令是把已有的工程文件checkout到本地,然后用命令根据工程文件生成一个log日志

 

第二个命令是根据已有的日志文件来核查工程文件来生成相应的分析文件。

G:cd G:\Esvn log -r {2017-11-8}:{2018-1-10} --xml -v > d:\svnlog\svn.log # 命令1D:cd D:\svnlogjava -jar statsvn.jar d:\svnlog\svn.log G:\E -output-dir D:\SVNLog\logs # 命令2pause

对于命令1:

首先将文件夹定位到代码checkout到本地的首目录,然后执行svn log功能,-r表示read,后边的{}:{}表示log分部的日期,--xml是存储格式 -v则是生成日志 > 表示输出路径 后边接输出路径,这一套操作可以得到所有这个时间段内的提交内容的log信息,这里并不包含代码行数等详细信息,只是为下一步服务的一个中间文件。

第一步生成的文件为:svn.log

命令2:

java -jar 运行jar程序; 第一个参数是要解析的log文件路径,第二个参数“G:\E”是上一个命令中统计的代码的路径,然后是指定输出文件的路径

这一步能够就上一个svn.log中生成的每个记录统计代码改动行数,生成统计结果

 

 

 

ps:satasvn.jar需要放到当前的执行目录下。

步骤举例:

1.解压附件到D:\work\statsvn-0.7.0

 

2.在D:\work\statsvn-0.7.0下打开cmd

 

3.svn log -r {2018-1-1}:{2018-12-29} -v --xml D:\project\CreditCardofUser_380 > D:\project\CreditCardofUser_380\1.log

 

4.创建文件夹D:\work\statsvn-0.7.0\code

 

5.java -jar statsvn.jar D:\project\CreditCardofUser_380\1.log  D:\project\CreditCardofUser_380 -output-dir D:\work\statsvn-0.7.0\code