快速业务通道

Java企业项目中应用Subversion配置与管理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
null);      ....      //create the file at the specified path          editor.addFile(path, null, -1);      }      else {          //file is already present, so open          //the file in the repository          editor.openFile(path, -1);      }      ....      String checksum = deltaGenerator.              sendDelta(path,              new ByteArrayInputStream(              obj.getXmlRepresentation().              getBytes()),              editor, true);      .....      editor.closeEdit();      ... }

Java企业项目中应用Subversion配置与管理(3)

时间:2011-02-14

检索变化历史

为检索指定领域对象的历史版本,需要调用SVNManager类的getRevisionLog方法; SVNRepository类的getLatestRevision方法可以得到当前版本号;SVNManager.log方法可以检索每个版本的日志,日志可以包含版本修订的日期、修改人、修改的内容等信息;SVNManager.getFile方法可以从Subversion仓库中取得领域对象指定版本的所有内容。

public List getRevisionLog(BaseTrackingObject      obj, long startRevision,      long endRevision) {      .....      if(endRevision==-1) {          //obtain the latest revision from          //the repository          endRevision =              theRepository.getLatestRevision();      }      //retrieve the various log entries for      //the particular object path      Collection revisionLogs = theRepository.          log(new String[] {path}, null,              startRevision, endRevision,              false, true);      ....      //Obtain the contents of the object at      //the specified revision      theRepository.getFile(path, revisionInfo.          getRevisionNumber(),          new Properties(),          xmlFileContentsStream);      .... }

检索版本间的差异

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),

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号