【问题标题】:SVN merge trunk in different branches with switchSVN 用交换机合并不同分支的主干
【发布时间】:2015-10-06 16:04:35
【问题描述】:

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

版本由SVN控制。

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

如果发生严重错误或我们想尽快向客户更新功能,我们承诺会进行分支。

现在考虑我们开发了一项新功能。

  1. 我们将新功能提交给 trunk
  2. 我们从 branchA 进行 SVN 结帐。
  3. trunk 中的修订(其中包含功能)合并到 branchA
  4. 提交branchA
  5. 我们将工作区切换到路径branchB
  6. 在这里做同样的合并。
  7. 尝试提交到分支,然后....我收到错误提示,已经 合并分支请测试。

我可以通过重新结帐 branchB 来解决这个问题,我可以再次合并。

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

有没有cmets?

【问题讨论】:

  • 也许 switch 命令没有正确更新 svn 属性(在你的情况下是合并信息)。您是否尝试在切换后执行清理命令(或还原)?

标签: svn version-control merge


【解决方案1】:

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

除了钩子脚本,这里有一些从你的角度调查事情的一般建议:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2010-11-25
    • 2018-11-08
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多