2012-03-23 28 views
6

我對如何使用Subversion中的合併信息有點好奇,以及如果合併信息不正確會遇到什麼樣的問題?Subversion合併信息,它有多重要?

例如,我從trunk開始分支branch1branch2。我也有subbranch1subbranch2來自branch1。考慮我在branch2中完成了一些開發,然後使用svn merge --reintegrate ^/branch2將它重新集成到主幹。然後,我想將這些更改也添加到subbranch1(將它們從trunk中拉出),並錯誤地使用了命令svn merge --reintegrate ^/trunk(因此--reintegrate標誌也添加到合併命令中,即使subbranch1不是trunk的直接祖先)。

這會在未來造成什麼問題?

回答

2

此答案已棄用。請使用Subversion> = 1.6。


你分支的方法是一般危險,但由於事故發生的,它甚至更糟。

重新錄製所有分支時,您會遇到很多問題。

  • branch2所做的更改看起來像是對subversion的刪除。
  • 您所做的刪除可能看起來像是對顛覆的補充。
  • 三路 - comparsion可能會給你奇怪的結果(把同一段代碼兩次到例如文件)

你不能再相信三路 - comparsion,你必須檢查每手動更改!

查看What mother never told you about svn branching and merging瞭解更多信息。

P.S.我不得不修復一次這樣的事情。從那以後,我們使用兔子跳躍(請參閱鏈接)。

+0

重新發布博文,我不認爲自從SVN 1.5開始,Bunny Hopping就是必不可少的了,它可以爲你追蹤這種東西。 – hdgarrood 2012-07-09 14:52:53

+0

SVN 1.5修復了一些問題,但是如果你做了很多合併和分支操作,你將會遇到麻煩。 – 2012-09-19 06:48:19

+0

兔子跳不是必需的。這是一個解決不好的SVN實踐的解決方法。 爲什麼人們希望合併變得簡單,如果他們要對樹幹和分支做很多改變? (特別是在相同的代碼!) – exception 2014-01-13 09:42:16

3

合併信息跟蹤此信息:

  • 分支之間的關係(subbranch1源自branch1,它源於trunk等)
  • 哪個版本已經被合併

如果合併信息丟失或不正確,則必須手動跟蹤合併,這可能容易出錯。通過使用合併信息,您只需讓Subversion跟蹤所有這些信息。