在没有参与合并操作的分支上找不到svn路径

时间:2010-11-03 20:38:50

标签: svn

我正在尝试将我的主干中的单个文件合并到分支(wc),并且我看到一个奇怪的路径未找到错误,该路径看起来位于当前合并操作中不涉及的分支上。

例如,在我们的svn项目中,我们有:

  • 分支
    • branch0
    • BRANCH1
    • BRANCH2
    • 店3
    • branch4
  • 标记
    • ... [某些标签]
  • 躯干

我已检查出branch4,这是我的工作副本。在修复了主干上的生产错误后,我想将我的更改从主干合并到branch4。我尝试使用以下命令执行此操作:

svn merge https://svn.svnprovider.com/my-account/my-project/trunk/path/to/file/my-file.java path/to/file/my-file.java

我已经使用其他文件完成了此操作,但是,对于此文件,我收到类似于以下内容的错误: (真实文件和路径中的专有信息,因此示例)

svn:'/ my -account /!svn / bc / 1732 / my-project / branches /branch1/path/to/file/my-file.java'找不到路径

在历史的某一点,branch1是我们的工作分支,它被重新整合到主干上。据我所知,所有分支都是从主干创建的,而不是从其他分支创建的。所以我首先想知道发生了什么,其次,我该如何解决这个问题。

我已经阅读了几篇关于svn:mergeinfo的文章,以及它如何导致类似的问题,当用户使用tortise时,这尤其成问题。我们有一些折磨用户进来和继续该项目,所以这可能是问题的根本原因 - 仍然需要修复。

是否有人遇到类似问题并确定了根本原因和修复方法。非常感谢。

2 个答案:

答案 0 :(得分:7)

执行合并时尝试使用--ignore-ancestry选项。可能是合并历史记录不完整(可能是由于乌龟或任何客户端因此而导致)并且当您执行“正常”合并时,在branch1上执行的操作会尝试应用于工作副本。

答案 1 :(得分:3)

我遇到了类似的问题。就像在牧师的情况下一样,我的文件曾经在一个不同的分支中,合并回主干并再次扩展。

但是我无法追踪错误的原因。

帮助我的是使用-c参数并仅合并我感兴趣的修订版本中的更改。

svn merge -c 12345 https://svn.svnprovider.com/my-account/my-project/trunk/path/to/file/my-file.java path/to/file/my-file.java