6

我有点好奇 Subversion 中的合并信息是如何使用的,如果合并信息不正确会遇到什么样的问题?

例如,我branch1已经branch2trunk. 我也有 asubbranch1和 asubbranch2来自branch1. 考虑一下我已经在 中进行了一些开发branch2,然后使用svn merge --reintegrate ^/branch2. 然后我想将这些更改也添加到subbranch1(从 中拉出trunk)并错误地使用命令,svn merge --reintegrate ^/trunk(因此--reintegrate也将标志添加到此处的合并命令中,即使subbranch1不是 的直接祖先trunk)。

这会在未来造成什么问题?

4

2 回答 2

3

合并信息跟踪此信息:

  • 分支之间的关系(subbranch1起源于branch1,起源于trunk等)
  • 哪些修订已经合并

如果合并信息丢失或不正确,您将不得不手动跟踪合并,这可能容易出错。通过使用合并信息,您只需让 Subversion 跟踪所有这些信息。

于 2012-03-23T07:33:08.983 回答
2

此答案已弃用。请使用 Subversion >= 1.6。


一般来说,你的分支方法很危险,但由于事故,情况更糟。

重新整合所有分支时会遇到很多问题。

  • branch2 所做的更改可能看起来像是对颠覆的删除。
  • 您所做的删除可能看起来像是对颠覆的补充。
  • 三向比较可能会给您带来奇怪的结果(例如,将同一段代码两次放入文件中)

You cannot trust the three-way-comparsion anymore, you have to check each change manually!

See What mother never told you about svn branching and merging for more information.

P.S. I had to fix something like this once. Since then we use bunny hopping (see link).

于 2012-03-23T07:36:04.130 回答