2009-01-08 331 views
117

使用TortoiseSVN,我需要對我在分支中完成的更改進行合併,然後將它們與Trunk合併。使用TortoiseSVN合併分支變化與中繼

我是這個項目的唯一開發者,所以我知道主幹沒有改變。我正在學習SVN,以便我的團隊最終可以使用它。

基本上,我希望我的後備箱看起來完全像分支。

在預SVN的世界裏,我只想將文件複製在我的分支文件夾,在樹幹文件夾中刪除文件,然後複製到分支主幹。

在TortoiseSVN的,我已經試過「復興分支」,「合併範圍的修改」和「合併兩個不同的樹。」似乎什麼都沒有改變主幹。我也嘗試在樹幹上分支。這給我一個錯誤,說主幹已經存在。

在這一點上,我只是無知按鈕糖化希望有所作爲。

回答

155

你的情況:

  1. 切換工作副本行李箱(SVN開關)
  2. 合併分支合併到工作副本(SVN合併)
  3. 確保一切仍然編譯和工程
  4. 提交工作副本(主幹)
  5. 考慮殺分支

團隊環境我建議你首先從你的分支主幹合併最新的修改,確保一切編譯和作品,然後執行上述步驟(這將是自瑣碎你已經測試了這些變化)。


更新

在步驟5中,我提到殺死分支。這是因爲一旦某個功能的分支位於主幹中,應該將其視爲主幹的一部分。在這種情況下,分支應該被殺死,以至於沒有人繼續工作。如果需要對該功能進行重大修改,則應爲此創建一個新分支。

,我不殺唯一的分支是維護和釋放分行,除非特定版本不再支持。

無論如何,您總是可以訪問每個修訂版,因此殺死一個分支僅用於防止其他開發人員在死枝上進行開發。

+3

這是迄今爲止最好的答案,但它可能更精確一些: 1.將工作副本切換到中繼(SVN交換機),2.將分支合併到工作副本(SVN合併),3.編譯工作複製,4.提交工作副本(SVN提交)。 ... – 2009-01-08 15:37:52

+0

謝謝,我做到了,它按照我的意願工作。我也能夠用這些相同的步驟標記代碼。 在步驟5中,殺死分支的原因是什麼?是爲了節省空間嗎? – 2009-01-08 17:33:19

+0

完成和完成,感謝您的反饋 – mbillard 2009-01-08 18:55:43

6

首先將您的工作副本切換到主幹。 然後執行從分支到主幹的修訂版本的合併範圍。 一旦這個對話框完成,這些差異將會在您的主幹工作副本中發生變化。您需要提交它們,就像您在工作副本上手動進行更改一樣。

在我的使用中,它更常用於在構建時保持主幹運行並旋轉分支。那麼我唯一需要做的合併就是從主幹中獲得一個錯誤修復,並將其放到最新的生成分支上,然後重新發布該分支。對我來說這是最簡單的方法,因爲你發現合併最好是笨拙的。是保持最新的分支和主幹簽出給我的機器,並毫不誇張地將文件從樹幹複製到分支和檢查都在

+2

要「複製」這些文件需要非常小心。使用類似TortoiseSVN的導出來避免破壞隱藏的svn目錄。 – Milimetric 2011-12-08 15:24:49

10

我覺得在TortoiseSVN 1.8.5中,合併|合併兩棵不同的樹木應該可以工作。當你將一個分支/標籤合併回主幹時,訣竅是From URL是主幹,To是標籤/分支。奇怪但真實。

來源:Merging

對於目錄,不是在你的工作拷貝,但在標籤/支,你可能會發生衝突的錯誤。只要接受衝突並重新合併即可。

2

我使用TortoiseSVN 1.9.3,構建下面的步驟27038.

請按順序合併支進樹幹。

1)右鍵單擊主幹工作副本並選擇下面的選項。

enter image description here

2)在分支的情況下,合併到主幹選擇選項第二如下所示並點擊下一步

enter image description here

3)在從:字段中輸入的文件夾的完整URL樹幹。這聽起來可能錯了,但請記住,主幹是您想要添加分支更改的起點。 在收件人:字段中輸入功能分支的完整文件夾URL。

enter image description here

4)單擊Next並做了測試合併

enter image description here

5)如果測試合併成功,則點擊合併按鈕。

6)一旦合併成功,然後在中繼上提交更改。