2011-04-19 74 views
0

我已經做了一些研究,似乎找到了我的情況大約4英寸的答案。SVN合併併發症

我們已經建立了一個SVN,目前有一個第三方不斷開發不同的分支。我們需要定期抽出進度。

首先,我們必須將它們同步與我們的主幹運行繪製出中的變化和解決任何潛在的衝突:

svn merge url/to/trunk 

現在,我們正試圖從他們拉回來。但是,svn似乎並不知道最後一次合併來自中繼。

當我們運行:

svn merge url/to/third/party/branch 
我們樹幹結賬

,它試圖重新應用相同的變化,導致數量巨大的「本地添加,添加來襲時合併」。

有什麼我失蹤了嗎?從上次合併以來,修改變更的正確方法是什麼?並讓SVN知道在Trunk中啓動的變更?

另外,這是我們應該使用的正確的過程來繪製他們作出的更改,因爲我們需要更新嗎?

回答

2

嘗試傳遞--reintegrate標誌合併回主幹(與復興合併合併很好的鏈接所建議的@ doc_180)

http://blogs.collab.net/subversion/2008/07/subversion-merg/

+0

感謝您的瘋狂快速反應!我認爲那個標誌是分支即將結束髮展的時候?如果發展繼續下去,這會有什麼問題嗎? – 2011-04-19 20:30:11

+0

在我的項目中,我們經常分支並開發一段時間,不時從主幹合併,我們遇到類似的問題,與您在將分支合併到主幹時提到的問題類似。現在,即使我們要繼續在分支上開發,我們在將分支合併回主幹時也始終使用'--reintegrate'標誌。 – William 2011-04-19 20:36:17

+0

重新整合後,您應該刪除重新集成的分支(請參閱http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html#svn.branchemerge.basicmerging.reintegrate)。所以,不,你不應該繼續在這個分支上工作。儘管如此,我不明白爲什麼要在分支之前重新從分支集成到主幹,因爲它會使分支與主幹相同。只需檢查分支並測試它。 – 2011-04-19 20:39:30

0

之前,我把我的2美分。如果你發現,請告訴我,如何在SVN中無縫地執行合併。

如果您在SVN中執行大量合併,那麼您可以使用SvnMerge.py庫。這有助於大部分合並用例的自動化。

這是粘貼從他們的常見問題?

svnmerge解決了什麼問題?

如果我們必須對另一個分支應用相同的更改,subversion已經有一個方法來做到這一點。 傳統的顛覆會讓你合併變化,但它不會「記住」你已經合併的東西。它也不提供一種方便的方式來排除變更集被合併。 svnmerge.py可以自動完成一些工作,並簡化它。 Svnmerge還創建了一條提交消息,其中包含所有合併事件的日誌消息。


這個工具的確幫我合併了SVN。但是當我們不得不頻繁合併時,我最終發現Git比SVN好得多。 (因此請求分享您的發現)

+0

請查看使用示例部分。 – 2011-04-19 20:35:53