- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
让他
使用ISVNEditor接口 ISVNEditor是用于编辑操作的接口,尤其是提交更改到存储库。ISVNEditor也用来接收和应用存储库的更新,但这属于下一个例子的范畴。试想一下,我们已经在我们的资料库中得到了以下的树结构:??我们要将它改变成以下这个结构:??换句话说,我们要:删除/nodeB/itemB1改变/nodeB/nodeC/itemC1?的内容附加一些版本属性到/nodeB/nodeC/itemC2添加目录/nodeB/nodeD现在,我们将讨论如何使用editor执行这些修改。我们假设我们正在使用本地存储库。首先,我们应该获得这样的editor来进行我们的计划。我们创建了一个绑定到节点/?nodeB上的SVNRepository驱动(因为我们所有的计划将执行该节点下)。...FSRepositoryFactory.setup();String url = file:///C:/path/to/repos/nodeB/;SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded( url ));...?在这里,我们不使用身份验证管理器,获得提交编辑器:...String logMessage = log message;ISVNEditor editor = repository.getCommitEditor( logMessage , null /*locks*/ , true /*keepLocks*/ , null /*mediator*/ );...?现在,我们有了一个编辑器,在我们调用editor的closeEdit()方法之前,我们不能调用SVNRepository驱动的任何资源库访问方法。下面的代码片断演示了如何在一个单一的事务中准备我们的更改。 ... //provide your local revision of nodeB1 long r = ...; editor.openRoot( r ); //provide your local revision of itemB12 r = ...; editor.deleteEntry( itemB1 , r ); //provide your local revision of nodeC3 r = ...; editor.openDir( nodeC , r ); //provide your local revision of itemC14 r = ...; editor.openFile( nodeC/itemC1 , r );?应用文本增量?-?文本变化到?itemC1,baseChecksum用来确保客户端的条目和存储库中的的条目具有相同版本,防止内容冲突导致的数据不一致:String baseChecksum = ...;editor.applyTextDelta( nodeC/itemC1 , baseChecksum );??使用增量生成器计算工作版本之间的数据差异。生成器会将不同之处或增量产出为固定大小的diff windows(差异窗口)序列,这意味着,样的窗口会给你不大于N个字节的输出文本。默认的窗口大小为100K字节。InputStream baseData = ...;InputStream workingData = ...;//100Kb-window generatorSVNDeltaGenerator deltaGenerator = new SVNDeltaGenerator( );String checksum = deltaGenerator.sendDelta( nodeC/itemC1 , baseData , 0 , workingData , editor , true );?增量生成器通调用其textDeltaChunk()方法将差异窗口传递给编辑器:editor.textDeltaChunk( nodeC/itemC1 , window );?当成器通完成后,它调用编辑器的textDeltaEnd()方法:editor.textDeltaEnd( nodeC/itemC1 );?sendDelta()方法返回工作版本条目的checksum。此checksum可用于验证更改被正确应用到了资源库侧。如果本地的工作条目和内资源库中的不匹配,checksum可能是不同的: editor.closeFile( nodeC/itemC1 , checksum );5 //the second and the third pa
您可能关注的文档
最近下载
- 特种设备作业人员监督管理办法课件.pptx VIP
- “十五五”研究系列:“十五五”前瞻初探.docx VIP
- 时间线时间轴流程图大事记商务版PPT模板合集.pptx VIP
- 2024年儿科急救知识竞赛试题库及答案(精华版).pptx VIP
- 银河证券“十五五”规划展望系列:“十五五”时期投资机遇前瞻【25年9月】.pdf VIP
- 2025年政府采购基础知识练习试题含答案.docx VIP
- 2025年儿科急救知识竞赛试题库及答案(一).docx VIP
- 2024年广发银行(郑州分行)校园招聘模拟试题及答案解析.docx VIP
- 9.14小数乘法计算应用题.doc VIP
- 2022年儿科急救知识竞赛试题库及答案(超强) .pdf VIP
文档评论(0)