如果兩個開發人員都從trunk中創建一個功能分支,他們是否安全地在其功能分支和主幹之間「同步合併」,然後仍然能夠將每個功能分支重新集成到主幹而沒有問題?通過「同步合併」我的意思是形式爲「svn merge ^/Project1/trunk」和「svn merge ^/Project1/branches/other-feature-branch」的命令,其中svn:mergeinfo屬性將保持跟蹤已經從每個位置合併的內容。在SVN中的功能分支之間合併安全嗎?
我問的原因是我已經閱讀過很多地方的文檔,這表明在相同的修訂版本中重新編譯會導致衝突問題(儘管我沒有在任何地方看到它解釋了爲什麼應該這樣做是這樣)。如果情況如此,那麼上述場景應該是有問題的,因爲每個功能分支將與主幹以及其他功能分支同步,因此,在主幹上進行的任何更改都將通過直接與主幹同步而得到接收,另一個功能分支(可能已經選擇了相同的主幹更改)。
但是在測試中,我已經完成了這個工作,看起來工作得非常好,但我希望有一些專家再次保證,我建議將其作爲我們團隊的工作流程。
@nosid:在此編輯中回覆nosid,因爲SO的荒謬字符限制可防止4個句子評論。這個Twitter是什麼?
我已閱讀文檔。問題在於它描述了一個非常簡單的場景,一次只能處理一個不穩定的功能,並且在功能分支中完成不穩定的工作,而在主幹中完成所有其他工作。在這種情況下,保持功能分支與中繼同步是微不足道的。
但是,在一個更現實的情況下,一個產品可能很容易一次完成幾個不穩定的工作。那麼保持這些作品同步的過程是什麼,以便它們可以根據需要與主幹和每個其他主體同步,但又不會對他們施加突如其來的變化?
您可以同時擁有任意數量的功能分支。那沒問題。每個分支上的變化也可能很大 - 只要重疊很小。如果重疊很大,它不起作用,但我會盡量避免_cross-merging_。 – nosid 2012-04-08 12:30:31