使用statsvn统计svn中项目代码行数时,出现如下问题,该如何解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用statsvn统计svn中项目代码行数时,出现如下问题,该如何解决?相关的知识,希望对你有一定的参考价值。
Parsing SVN log 'd:\statsvn\svn.log'No exclude pattern
Cache: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 1; 文件提前结
束。
Scheduled 0 svn diff calls on 0 threads.
Generating report for /Trunk/Project/test into
Using default CSS file (objectlab-statcvs.css)
memory usage After Build: 27136.0 kb
The repository object is not valid. Please check your settings.
Possible reasons:
1/ Did you use the option -v to create the SVN log
2/ Is the log file empty?
3/ Do you run from a checked out directory (you should)?
4/ Do you have non-committed items?
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="6305">
<author>xxxxxx</author>
<date>2017-02-28T18:09:56.025844Z</date>
<paths>
<path
action="M"
prop-mods="false"
text-mods="true"
kind="file">/Web/MPWeb/src/pccom/common/filter/MobileLoginFilter.java</path>
</paths>
<msg></msg>
</logentry>
由于/Web/MPWeb目录不存在了,自然生成报表失败了。
所以解决方案是手动修改logfile文件中的目录名为当前的正确路径/Web/MPWeb_20170301,再运行命令:
java -jar statsvn.jar D:\MyProjects\logfile.log D:\MyProjects
就好了。 参考技术A StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表。比如:代码行数的时间线;针对每个开发者的代码行数;开发者的活跃程度;开发者最近所提交的;文件数量;平均文件大小;最大文件;哪个文件是修改最多次数的;目录大小;带有文件数量和代码行数的Repository tree。StatSVN当前版本能够生成一组包括表格与图表的静态html文档。 参考技术B 因为你导出的SVN日志是空的,所以日志解析失败了
svn代码统计
分享一个自己写的svn代码统计的脚本,不喜绕行:统计项目每个人修改的文件的个数和行数
#!/bin/bash
# 统计项目每个人修改的文件的个数和行数
Svn_pro=http://192.168.1.1/svn/project
# 版本库最后修改的信息
Now_date=`date ‘+%F‘`
next_date=`date -d "next day" +%Y-%m-%d`
#echo -e " 版本库最后修改信息: "
#svn info http://192.168.1.1/svn/project --username username --password password 2>/dev/null | awk ‘NR>6 ‘
(( user_count=${#Svn_user[@]}-1 ))
# 修改的文件
#list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project --username username --password password | awk ‘{print $2}‘ `
list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project --username username --password password | awk ‘{print $2}‘ `
list=(`echo $list_value`)
(( count=${#list[@]}-1 ))
for i in `seq 0 $count`
do
edit=`svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username username --password password | awk ‘{print $2}‘ | grep -v "-" | wc -l`
if [ $edit -ne 0 ];then
#echo -e "-----------------------------------------------------------------------------------------------" >> $0.log
#echo -e "${list[$i]}文件增加行数:" >> $0.log
#svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username username --password password | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c
svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username username --password password | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c >> $0.log
fi
done
#echo -e "Author\t\tTotal lines"
awk ‘{sum[$2]+=$1}END{for(c in sum){printf "%-16s%-10s\n",sum[c],c}}‘ $0.log > total
#echo "--------------------------------------------------------"
#echo -e "Change file\tAuthor"
cat $0.log | awk ‘{print $2}‘ | sort | uniq -c > file
echo -e "Author Change_file Total_lines"
awk ‘NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]" "$0;j++}‘ total file | awk ‘{print $4,$3,$1}‘
rm -f $0.log total file
统计代码修改的详情
#!/bin/bash
# 统计项目代码修改的详情
Svn_pro=http://192.168.1.1/svn/project
# 版本库最后修改的信息
Now_date=`date ‘+%F‘`
next_date=`date -d "next day" +%Y-%m-%d`
#echo -e " 版本库最后修改信息: "
#svn info http://192.168.1.1/svn/project --username username --password password 2>/dev/null | awk ‘NR>6 ‘
(( user_count=${#Svn_user[@]}-1 ))
# 修改的文件
#list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project --username xiaodx --password [email protected] | awk ‘{print $2}‘ `
list_value=`svn diff -r {$Now_date}:{$next_date} --summarize http://192.168.1.1/svn/project --username xiaodx --password [email protected] | awk ‘{print $2}‘ `
list=(`echo $list_value`)
(( count=${#list[@]}-1 ))
for i in `seq 0 $count`
do
edit=`svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | wc -l`
if [ $edit -ne 0 ];then
# echo -e "-----------------------------------------------------------------------------------------------"
# echo -e "\033[36m ${list[$i]}t文件增加行数:\033[0m" >> $0.log
echo -e "${list[$i]}文件增加行数:" >> $0.log
# svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c
svn blame -r {$Now_date}:{$next_date} ${list[$i]} --username xiaodx --password [email protected] | awk ‘{print $2}‘ | grep -v "-" | sort | uniq -c >> $0.log
fi
done
以上是关于使用statsvn统计svn中项目代码行数时,出现如下问题,该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章