SVNkit
SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。
思路
- checkout 仓库
- 筛选需要统计的文件
- 遍历每个文件的修改版本
- 获取文件的修改版本和各版本的修改作者
- 比对各版本相对前一个版本的代码变化数据
- 修改成员的代码贡献的各个参数
实现
环境准备
LineNumber.java
一个用于记录某个成员的共享贡献指标的bean类
/**
* 各成员的代码贡献的各项指标<br/>
* 当前统计:新增代码、和修改行数
*/
class LineNumber{
// 作者
String name;
// 新增行数
long add = 0l;
// 修改行数
long modify = 0l;
// 总数
long sum = 0l;
/**
* 构造器,必须传入该记录所属作者
* @param name 作者姓名
*/
public LineNumber(String name) {
this.name = name;
}
/**
* 设置新增行数,并在总数加上新增行数
* @param add 新增行数
*/
public void setAdd(long add) {
this.add += add;
this.sum += add;
}
/**
* 设置修改行数,并在总数加上修改行数
* @param add 修改行数
*/
public void setModify(long modify) {
this.modify += modify;
this.sum += modify;
}
// getter 和 toString
public long getAdd() {
return add;
}
public long getModify() {
return modify;
}
public long getSum() {
return sum;
}
@Override
public String toString() {
return "LineNumber{" +
"name='" + name + '\'' +
", add=" + add +
", modify=" + modify +
", sum="