检索版本间的差异
SVNManager.showDifferences方法用来检测两个版本之间的差异,是通过调用JavaSVN 的SVNDiffManager类来去的差异,也可以通过SVNClientManager来引用并执行这个类,SVNDiffManager的doDiff方法有一个默认的实现,可以通过参数指定输出流参数的形式取得固定格式的差异结果,我们也可以使用ISVNEditor来实现一个自己的差异比较方法。在这个例子里,我们使用默认的实现。
public String showDifferences(
BaseTrackingObject obj,long revision1,
long revision2) {
....
//Create an instance of SVNClientManager
//providing authentication
SVNClientManager ourClientManager =
SVNClientManager.newInstance(
options, "name", "password");
//Obtain the handle to DiffClient
//from the client manager
SVNDiffClient theDiff = ourClientManager
.getDiffClient();
....
theDiff.doDiff(svnUrl, SVNRevision.
create(revision1), svnUrl,
SVNRevision.create(revision2),
false, false, diffStream);
....
}
结论
在企业级应用里,不但要完成数据的存储和检索,还要实现对数据变化历史的跟踪。传统方法是使用关系数据库来完成这个工作,但是这不是一个“优雅”的方案。在我们的贷款数据处理的例子里,Subversion提供了跟踪数据变化的支持。JavaSVN的API用来完成数据存储、检索、获取版本间差异和日志等任务。
我们的例子只是一个简单的性能演示,Subversion提供了丰富的功能支持,完全可以应用于企业级应用。祝你探索地更开心!