gpt4 book ai didi

java - Svnkit:远程获取两个提交修订之间的差异

转载 作者:行者123 更新时间:2023-11-30 02:35:45 32 4
gpt4 key购买 nike

我想使用 SvnKit 获取两个修订版之间的差异。我查看了文档,在 SVNRepository 中找到了这个方法类,但它仅检查本地副本和远程副本之间的差异。

diff(SVNURL url, long targetRevision, long revision, java.lang.String target, boolean ignoreAncestry, SVNDepth depth, boolean getContents, ISVNReporterBaton reporter, ISVNEditor editor)

有没有办法在不下载存储库的情况下获取某个存储库的一系列修订的差异?

最佳答案

SVNKit 中有多个 API,而基于 SVNRepository 的 API 是最低级别的,您需要具有良好的 Subversion 内部工作经验才能使用它。

相反,最好使用基于 SvnOperationFactory 的 API,其工作方式与“svn diff”命令非常相似。

    final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
try {
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
final SvnDiffGenerator diffGenerator = new SvnDiffGenerator();
diffGenerator.setBasePath(new File(""));

final SvnDiff diff = svnOperationFactory.createDiff();
diff.setSources(SvnTarget.fromURL(url, SVNRevision.create(revision1)), url, SVNRevision.create(revision2)));
diff.setDiffGenerator(diffGenerator);
diff.setOutput(byteArrayOutputStream);
diff.run();
} finally {
svnOperationFactory.dispose();
}

除此之外,它调用 SVNRepository#diff 做了很多工作。如果您需要对输出进行更多控制,您可以实现自己的 ISvnDiffGenerator 并将其传递给操作。

关于java - Svnkit:远程获取两个提交修订之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43148487/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com