0

我們使用SVN 1.6 我們喜歡在分支之間執行代碼合併,我們處於兩難境地。SVN代碼在多個分支之間合併問題

分公司A存在
民間上從分支創建的分支甲
科乙修改代碼甲
民間上兩個分支修改代碼A和B
科同步碼合併到科乙
經過一段時間
從分支A創建的分支C
分支A繼續同步代碼合併到分支B(短時間)
在分支C上進行代碼更改的人員 個民間停止在分支A碼的改變和分支「凍結」,沒有更多的CI
人制作的分支B碼變化
支路C同步碼合併到科乙
民間上分行B和C
後修改代碼一些長的一段時間

現在的困境:我們要合併科B到C路

由於科B是A分支而不是分支C,我們不能申請 - 重新合併從B到C的代碼合併選項,因爲它們不共享共同的祖先

什麼是合併風險最小的方式(沒有--reintegrate選項)以防止「 (C中B)的雙重合並/重複代碼「分支C?

+0

你能使用「合併一個版本範圍」。烏龜提供了這樣的選擇,但我不確定SVN 1.6是否可以解決這個問題。 – Micha

回答

0

通過簡單的繪圖可視化您的分支結構。我對你的問題的理解是:

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \  \  \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

我會A.整合C和B如果這不是你能做到這一點的3個步驟/ 3系列步驟的選擇:

  1. 全部合併在B中完成的更改爲C,但不包含從A合併的更改。直到您達到從A到B的最後一個合併(不在C中)
  2. 將此合併從A合併到B也合併到C
  3. 合併在B上進行的其餘更改(在最後一次從A合併之後),但省略了包括在內的更改m C

我不完全清楚你的結構。如果這將是

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \   \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

我會採取從A直接最後變成C.

+0

嗨BHF,謝謝你的迴應。您的圖表在我的文字說明中看起來正確。因此,從您的解決方案中,不使用--reintegrate選項,我們應該根據以上3個步驟中的1個合併rev數字;這是我們的正確理解嗎? – chz

+0

您可以按照[合併一系列修訂](http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge。advanced.advancedsyntax)或者[單選](http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge.cherrypicking)更改個別變更集。如果您在開始步驟2之前執行步驟1,則可以降低兩次做事的風險。只需嘗試一下,如果出錯,請恢復您的工作副本並重新開始。祝你好運。 – BHF