0

我面临 svn 合并的问题,这是场景

主干
分支 1
分支 2

同时创建了一个新文件夹“abc” Branch1Branch2两者的代码库都已更新,直到Branch1发布。进一步的代码 chagnes 进行了Branch2
现在,当 Branch1 合并回 Trunk 时,一切顺利。
当 Trunk 合并到 Branch2 时,出现了树冲突(如预期的那样)。

但现在我不确定如何进行。我想保留 Branch2 中的 lcoal 更改并正确合并目录,以便将来的合并不会产生任何树冲突。

有任何想法吗?有没有人遇到过这样的问题?有什么决议吗?


一些问题的答案: Q 为什么你同时创建两个分支?
答:我正在一个 25 名开发人员的团队中合并 svn 任务。2 个开发人员创建了这个。

Q 而且,为什么两个分支都创建了这个 abc 目录?
A:使用的是同一个项目。一个是在它的初始阶段工作,而另一个是在它实际发布之前的一个特性。

Q abc 是一个项目还是仅仅是现有项目下的一个新目录?
A:这是一个新项目

那个 abc 目录是否存在于主干中?
答:没有

4

3 回答 3

0

显然,如果您合并来自 2 个源的相同目录名称,您将遇到树冲突。您可以尝试通过合并分支 1 来伪造它,然后将后续更改从分支 2 合并到目录(即跳过创建目录的修订版,只合并包含内容更改的修订版)

或者,您可以在合并分支 1 并提交后手动复制更改。

于 2014-10-01T15:41:42.070 回答
0

Before merging /trunk from root into Branch2, merge subtree /trunk/abc into /Branch2/abc

于 2014-10-01T15:44:10.060 回答
0

到 Subversion/Branch1/abc/Branch2/abc是两个完全独立的目录。两者之间没有共同的历史。下一次,您需要使用svn cp,以便 Subversion 可以判断它们是相关的。

您可以尝试使用该--ignore-ancestory标签,但这将进行双向合并而不是三向合并。这意味着如果我合并/Branch2到上/Branch1abc目录上的内容/Branch1将是任何内容/Branch2

为什么要同时创建两个分支?而且,为什么两个分支都创建了这个abc目录?是abc一个项目还是仅仅是现有项目下的一个新目录?该abc目录是否存在于主干中?

听起来您可能需要查看您的 CM 实践。不幸的是,没有更多信息,我无法给你更具体的建议。

于 2014-10-01T17:23:16.630 回答