2010-08-31 122 views
38

我期待將我在SVN分支中開發的代碼合併到樹幹。我正在使用Eclipse,並且我一直在使用Team-> Commit將我的更新提交給SVN。但我之前沒有合併過。請幫我解決一下這個。謝謝使用Eclipse合併SVN中的分支到樹幹

回答

76
  1. 首先確保你是最新的。更新你的目標分支的工作副本,即。你融入的地方。在這個例子中,我們正在研究「核心」的主幹,我們想要抓住維護分支發生的變化併合並它們。
  2. 解決所有衝突。在此階段,工作副本和存儲庫之間不應存在衝突。
  3. 在工作副本上選擇SVN合併選項。在Eclipse中,這將在「團隊」菜單下找到並稱爲「合併分支」。 SVN:在Eclipse中合併
  4. 將From URL改爲您想要合併到您的工作副本的特定分支。在這個例子中,我們正在尋找p400維護分支(./core/branches/p400)。
  5. 將「修訂版本」更改爲合併到目標分支中的最後一個修訂版本。基本上你不想合併整個分支歷史,你只是想包含自上次合併以來的更改。目前在Subversion中沒有簡單的方法來確定最後的合併點。您必須查看消息日誌並查找最後一次提交合並的提交。如果您遵守用於合併的提交消息,應該很容易(見下文)。記下該修訂版的內容 - 稍後在提交更改時需要這些修訂。 SVN:與Eclipse合併
  6. 將修訂版本更改爲最新版本(即頭部)。記下該修訂版的內容 - 稍後在提交更改時需要這些修訂。
  7. 單擊合併並等待。取決於差異有多大,這可能很快,或者我只是墮落了。如果你有這麼大的變化,你不能在Eclipse中完成它,你可能需要使你正在合併的修訂版本的範圍更小。或者你甚至可能不得不跳過某些修訂版,並且如果它們很龐大,就要手動進行修改。更新大型第三方庫時,我們不時遇到此問題。絕大多數時間你都會好起來的。
  8. 查看更改並解決衝突。合併完成後,查看對您的工作副本所做的更改,並確保解決您找到的任何衝突。
  9. 一旦目標工作副本中的所有更改都已解決,請使用一次提交檢查它們。您沒有進行大量提交的原因是這些更改應該在您合併的分支中記錄。提交消息需要採用特定格式來詳細說明合併,並且在將來很容易找到。我們使用以下格式,但您可以使用任何適用於您的內容 - 只要您堅持。

    將[source]合併到[target]; [儲存庫。合併轉速[開始]:[結束]

享受!

+3

相較於顛覆性(Eclispe的標準SVN客戶端我覺得呢?)Subclipse中具有良好的最佳實踐檢查合併之前) 只是你知道.. – 2010-10-06 10:22:42

0

我想補充點8 .Review的變化和解決衝突。 ---

手動處理衝突時 - 當您在代碼塊上從右向左複製時 - 小心 有時會添加大量代碼,有時會正確替換塊。 確保沒有重複的代碼塊。

此外,這是helpful-- What is the proper way to do a Subversion merge in Eclipse?