java - 如何与SVNKit合并类似 "svn merge"

标签 java svn merge svnkit

我正在尝试与 SVNKit 合并,但它会导致树冲突。为了找到原因,我使用 svn 命令行工具做了一些实验。此命令将导致与 SVNKit 相同的冲突:

svn merge –r 0:HEAD "https://svnserver.com/svn/test/trunk"

但是

svn merge "https://svnserver.com/svn/test/trunk"

工作正常。

那么我怎样才能用 SVNKit 做同样的事情呢? doMerge 需要 SVNRevisionRange。

SVNRevisionRange r = new SVNRevisionRange(SVNRevision.create(0), SVNRevision.HEAD);
dc.doMerge(mergeUrl, mergeRev, Arrays.asList(r), mr, INFINITY, true, false, false, false);

最佳答案

首先,您不需要像第一个示例中那样对存储库中的所有修订运行合并。发生树冲突是因为这些 0:HEAD 修订版中存在文件夹重命名,并且无法按原样干净地应用它们。阅读 SVNBook | Dealing with Structural Conflicts .

关于您的 SVNKit 代码片段,您似乎想运行重新集成合并(是吗?)。在这种情况下,你就做错了。阅读 SVNKit SvnMerge class documentation on reintegrate merges .

我猜您的 Subversion svn.exe 客户端版本为 1.8 或更高版本。从版本 1.8 开始,客户端 does reintegrate merges automatically在我看来,当您运行 svn merge "https://svnserver.com/svn/test/trunk"时,它会自动重新集成合并。

关于java - 如何与SVNKit合并类似 "svn merge",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768379/

相关文章:

java - Lombok SLF4J impl 继承问题

Java ThreadPoolExecutor 策略, 'Direct Handoff' 带队列?

Eclipse: 'Project' 的 SVN 同步信息已损坏或不存在

php - 将 2 个查询中的 2 个条件数组合并到 1 个查询中

codeigniter - youtube:合并一系列视频文件并上传为单个视频

java - Java 中的 ceil 或小数点后四舍五入

java - Java 中的 & 等于运算符有什么用?

xcode - 恼人的 svn 问题,其中 svn 声明文件夹处于版本控制之下,但不存在 .svn

svn - 版本控制中的项目结构

c# - 使用相同的键/属性合并列表中的项目