2011-07-26 62 views
1

這可能是一個愚蠢的問題,但我還沒有在SVN這樣做過。提交到一個新的Subversion分支

我有一個主幹工作副本上,我一直在做一些沉重的重構。在此期間,幹線本身已經發生了很大的變化,我還沒有準備好合並。我想擱置我目前對尚不存在的新分支的更改。

什麼是正確的做法嗎?由於

回答

5

找到你的工作拷貝的修訂是基於:

svn info . 

複製幹線的那個版本的服務器上的一個分支

svn copy svn://yourrepo/trunk svn://yourrepo/branches/a -r [revision] 

,然後你的WC切換到分支

svn switch svn://yourrepo/branches/a 

然後,您可以將您當前的更改提交到分支。

+1

由於中繼線已經移動,並且遠離合並準備;可能要添加-r 到副本,其中將是rev。本地工作副本是基於。 – PtPazuzu

+0

這是關鍵 - 感謝PtP。我如何知道我需要從哪個版本的主幹複製? –

+1

'svn info .'應該包含rev。 info – PtPazuzu

0

在幾個簡單的步驟:

1),你必須分支主幹(將要求您在版本庫創建一個不同的文件夾的新的分支)。如果您在烏龜SVN子菜單

2)你的工作文件夾使用的工作文件夾烏龜SVN你只是點擊右鍵並選擇branch必須使用switch命令來啓動新的分支工作。在右單擊 - >切換,並選擇新的分支

和你現在的一個分支工作

HTH,JP

0

它實際上是一個非常好的問題。在這種情況下,我會做的是創建一個不是基於當前工作副本的分支,而是在製作工作副本時從主幹修訂版創建的分支。

步驟如下:

  1. 創建一個新的分支文件夾。
  2. 做一個「SVN信息」,並嘗試檢索當你做的trunk的Workng複製版本號。例如,如果您在Rev 40上創建了工作副本,並且HEAD修訂版現在在60上,則需要使用Rev 40作爲新分支的基本修訂。
  3. 做一個「SVN複製」和複製樹幹修訂版,以新的分支文件夾時使用該版本號。
  4. 現在做一個新分支的「svn checkout」。
  5. 從主幹的工作拷貝的文件複製到分支的工作副本。
  6. 提交分支工作副本中的更改並刪除中繼工作副本。

現在,您應該有一個新的分支,其中包含基於當您開始更改時的實際修訂的當前更改。不用說,新的分支將會顯着過時,需要從中繼上更新。你可以推遲這個,直到你準備好合併爲止。

+0

謝謝,這與接受的答案看起來非常相似。那裏缺少什麼? –

相關問題