2013-02-12 70 views
2

情況是這樣的:SVN合併 - 重新合併失敗的「丟失範圍」

一個團隊工作在長期功能分支(18個月)。定期將主幹合併回此功能分支(每月開始,之後每兩個/三個月)。

今天我們想要使用重新集成功能將特徵分支合併回幹線。

的問題是,我們得到了很多(成千上萬!):

branches/feature/dir/file.foo 
Missing ranges: /trunk/dir/file.foo:94959 

但是,當我檢查SVN的日誌,我可以看到的範圍94000-96500確實是在合併了一些時間過去。

這裏發生了什麼? 爲什麼svn抱怨「缺少範圍」,如果它不是真的? 如果我在94000-96500上看到合併信息,會不會有一個原因會導致r94959丟失? 我該如何解決這個問題(正如我所說的,我們正在談論成千上萬的修訂「失蹤」)?

謝謝你的幫助。

回答

1

這通常發生在以下情形:

  1. 你的行李箱有一些兩個分支像branch1branch2平行工作。
  2. branch1創建第一個,然後branch2創建。但是,branch2更改首先完成,那些重新集成到主幹。
  3. 之後,在重新集成branch1之前,我們需要從中繼線到branch1執行svn merge(而不是svn merge --reintegrate)並解決衝突。
  4. 而在此期間,我們可能會獲得一些文件夾,更改了一些merge-info中的更新。如果我們不提交這些文件夾,因爲這些文件夾只是merge-info屬性更改,那麼reintegrate合併branch1時可能會導致類似問題。

如果這是你的情況,你可以嘗試的解決方案是再次從做你的軀幹的svn mergebranch1,你會得到你的merge-info屬性在您的文件夾再次更新和提交那些branch1。然後,從branch1到再試一次。

+0

無論如何做到這一點沒有svn合併?我的重新集成源代碼分支是一個發佈分支,我現在不能進行svn合併,並將新東西加入到重新集成源代碼分支中! – endless 2014-02-14 18:04:27

+0

@endless:重新整合是一個特定的操作,您可以在其中引入中繼(例如http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html)。如果這不是你的情況,你需要做一個合併回主幹,而不是重新整合。 – 2014-08-16 23:05:21