【问题标题】:Subversion: Multiple conflicts when merging the differences between two branches into an unmodified working copySubversion:将两个分支之间的差异合并到未修改的工作副本时出现多个冲突
【发布时间】:2010-06-21 14:59:12
【问题描述】:

我有一个充满 WordPress 网站的 Subversion 存储库。存储库结构如下所示:

/WordPress/tags/2.9.2
/a-wordpress-site.com/trunk
/another-wordpress-site.com/trunk
...

当我想创建一个新站点时,我只需将/WordPress/tags/<latest-tag> 复制到/<new-site>/trunk。太棒了! - 除了现在,自从我创建存储库以来,第一次有一个新版本的 WordPress 可用:WordPress 3.0。

WordPress.org 使用 Subversion,它们提供对 their repository 的只读访问权限。我想将 2.9.2 和 3.0 之间的差异合并到我的存储库中。除非我弄错了,否则我应该可以使用 TortoiseSVN 的“合并两个不同的树”功能来完成此操作。

... 但是,当我将 http://core.svn.wordpress.org/tags/2.9.2 指定为 From URL,http://core.svn.wordpress.org/tags/3.0 作为 To URL,并将差异合并到我的存储库的 /WordPress/trunk 目录(trunk = 2.9.2)中时,我得到多个树冲突,以及至少一个正常冲突。

我不介意手动解决冲突,但我不知道该怎么做。 Subversion 告诉我已对已删除的文件进行了更改。正常的冲突尤其令人费解。怎么会这样?我是不是做错了什么?

【问题讨论】:

    标签: svn merge


    【解决方案1】:

    假设您没有更改您签出的 WordPress 代码上的任何内容,即包含在您的目录 /WordPress/tags/2.9.2 中的那个,那么从他们的 SVN 存储库中签出 Wordpress 3.0 代码是没有问题的。你不需要自己合并东西。

    【讨论】:

      【解决方案2】:

      不要误会我的意思 :) 但是为了理解 svn 合并了大量的 GUI 工具,它变得比它必须的更复杂。

      您用于项目的所有 wordpress 实例都是您拥有的“当前”wordpress 的祖先。只有那个“当前”是你的 /tags/2.9.2

      在更好的供应商分支方案中,您的项目将基于一般的“/vendor/wordpress/current”

      也许是Subversion svn:externals file override?

      但没关系,您仍然可以使用新的 wordpress 3.0 的代码覆盖存储库中的 tags/2.9.2

      之后,您必须在每个项目中进行合并。我会使用命令行客户端:

      svn merge http://svnserver.tld/repository/tags/2.9.2
      

      【讨论】:

        猜你喜欢
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        • 2012-05-29
        • 2016-08-25
        • 1970-01-01
        • 2015-11-18
        • 2014-02-14
        相关资源
        最近更新 更多