SVN使用交换机合并不同分支中的主干

SVN使用交换机合并不同分支中的主干,svn,version-control,merge,Svn,Version Control,Merge,考虑一个有五个客户的产品。产品配置文件会更改产品UI,并更改每个客户的某些行为 版本由SVN控制 开发是在主干上完成的,当发布准备就绪时,将为每个客户创建一个分支,并对产品进行标记,开发将继续在主干上进行,以备下一个发布 如果发生了严重的错误,或者当我们希望更快地向客户更新功能时,我们会向分支机构承诺 现在我们已经开发出了一个新的特性。 我们将新功能提交给主干网 我们在branchA执行SVN签出 将修订版(其中包含功能)从trunk合并到branchA 提交branchA 我们将工作区切换到路

考虑一个有五个客户的产品。产品配置文件会更改产品UI,并更改每个客户的某些行为

版本由SVN控制

开发是在主干上完成的,当发布准备就绪时,将为每个客户创建一个分支,并对产品进行标记,开发将继续在主干上进行,以备下一个发布

如果发生了严重的错误,或者当我们希望更快地向客户更新功能时,我们会向分支机构承诺

现在我们已经开发出了一个新的特性。

  • 我们将新功能提交给主干网
  • 我们在branchA执行SVN签出
  • 将修订版(其中包含功能)从
    trunk
    合并到
    branchA
  • 提交
    branchA
  • 我们将工作区切换到路径
    branchB
  • 在这里进行相同的合并
  • 尝试向分支机构承诺,并。。。。我得到的错误是,已经出现了 合并了分支,请测试它。
  • 我可以通过重新签出branchB来解决这个问题,我可以再次合并

    看来他的问题是开关命令,但我不知道为什么

    任何评论?

    错误消息“已合并分支,请测试它”不是标准的Subversion错误消息。这听起来像是存储库管理员在预提交钩子脚本完成的测试中设置的。您应该与管理员交谈,了解脚本正在执行哪些特定测试,以及是什么导致它返回该特定错误消息。据我们所知,这可能是钩子脚本中的错误,而不是进程中的错误

    撇开胡克脚本不谈,以下是一些从你的角度调查事情的一般建议:

    我建议每次只看一步。在步骤5中的“切换”之后,在您的工作副本和分支B的存储库URL之间执行
    svn diff
    。此时,它们应该完全相同。如果没有,则表示您的“开关”没有按预期工作(如果您使用的是External,则可能需要在“开关”之后执行“更新”)。类似的选择是将分支B的新副本签出到新文件夹中,然后将新分支B与切换的工作副本进行比较(比较文件内容、文件夹树和subversion元数据)


    在步骤6中的合并之后,在\u merge.diff之后运行
    svn diff>。同时运行
    svn diffsvn://your_repo_url/your_path -c修订号>传入合并.diff
    。比较这两个文件并确保它们相同。它们之间的任何差异都可能表明合并未成功完成或分支不同步。

    可能switch命令未正确更新svn属性(在您的情况下为mergeinfo)。您是否尝试在切换后执行清理命令(或还原)?