,我已經在我的公司被捲入一期工程已在SVN已經有點亂了(我會怪我們的期望,工程師應該知道如何使用它,恕不另行曝光和無訓練)。該項目以前由一名工程師擁有,但所有權已轉讓給較新員工,他們對SVN的工作原理不熟悉。當他開始對代碼庫工作,他做了一個「分支」來制定的,但忽略了用TortoiseSVN 科/標籤...命令。分支合併到主幹不共享祖先
相反,他只是在./branches
目錄中創建了一個名爲Development
的目錄,並手動複製了所有文件。在過去的6個月裏,這個分支已經成爲了主幹應該是什麼,並且它已經被廣泛使用而沒有合併回主幹。自那時以來,該項目已在規模和增長能力,到現在有幾個新的目錄,文件,並添加到Development
分支的外部哪裏。在這一點上,我們正在討論800個修訂差異。
那麼,如何解決呢?
目前,如果我通過合併......命令來運行,使用合併一個版本範圍的選擇,我可以亂用幾種方式的選擇,但他們沒有通過測試合併沒有衝突和樹木衝突。具體而言,主要發生在第二衝突提交到Development
「分支」,並認爲衝突可能就不會發生了。到目前爲止,我已經試過:
- 合併一個版本範圍的 - >所有的修訂 - >測試合併
- 合併一個版本範圍的 - >特定範圍 =
REV1-REV2
- >測試合併 - 合併一系列修訂→特定範圍 =
REV1-REV2
- >忽略祖先 =True
- >測試合併 - 合併兩個不同的樹 - >測試合併
- 合併兩個不同的樹 - >忽略祖先 =
True
- >測試合併
在這5個組合中,最後一個看起來最有希望,因爲只有樹衝突,它們只出現在添加的文件夾和文件中(外部看起來像它們會被合併,但很難分辨何時使用測試合併。
我想盡可能保留歷史記錄,但是此時trunk
中的代碼已經過時,無法使用,我不會完全反對僅僅複製它。將這條「分支」轉移到trunk
上最無痛的路徑是什麼,同時保留關於發生的事情的最多信息?
我已經和擁有這個項目的開發者談過了,我們將一起解決這個問題,以便他可以更多地瞭解SVN是如何工作的以及如何正確使用它。我想做好準備,以便我們能夠快速完成並儘可能從經驗中獲得收穫。