Subversion:将两个分支之间的差异合并为未修改的工作副本时发生多次冲突

时间:2010-06-21 14:59:13

标签: svn merge

我有一个充满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作为发件人URL,http://core.svn.wordpress.org/tags/3.0作为收件人网址时,将差异合并到我的存储库的/WordPress/trunk目录中trunk = 2.9.2),我遇到了几次树冲突,至少发生了一次正常冲突。

我不介意手工解决冲突,但我不确定如何解决。 Subversion告诉我已对已删除的文件进行了更改。正常的冲突尤其令人困惑。怎么会这样?我做错了什么?

2 个答案:

答案 0 :(得分:0)

假设你没有更改你签出的WordPress代码的任何内容,即目录/WordPress/tags/2.9.2中包含的代码,那么从他们的SVN仓库中检出Wordpress 3.0代码就没有问题。你不需要自己合并。

答案 1 :(得分:0)

不要误解我的意思:)但是为了理解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