2010-01-18 87 views
1

我公司的代碼位於Subversion版本庫中,目前運行良好。我遵循關於如何設置存儲庫的建議,即我有分支/標籤/樹幹子目錄。但是現在我想要更加有組織,並且有2個meta分支,dev和release。前者顯然是爲了開發目的,工程師可以嘗試不同的奇怪事物,而後者則是爲了產品準備好的穩定代碼。所有新功能首先會在開發過程中以「dev」的形式出現,一旦確定,一會兒就會合併到「發佈」分支。承諾「發佈」只會來自這種合併加上正常的錯誤。這些元分支中的每一個都將包含正常的分支/標籤/中繼子目錄。Subversion和tortoisesvn:分支/移動目錄

我的問題是我不能爲我的生活設置了這一點。我創建了2個meta分支,將所有現有的子目錄移動到「dev」中,現在我想將「dev」的主幹移到「release」主幹中。但我無法想象如何。如果我切換(從TortoiseSVN),它只是刪除所有內容,因爲「釋放」中繼線是空的。如果我嘗試從'dev/trunk'創建分支'release/trunk',tortoisesvn會抱怨路徑不存在。

我不知道該怎麼辦。這應該是簡單的不應該?我想很多人使用類似的組織,開發與釋放?!

任何建議/意見/想法歡迎。

在此先感謝。

一個

回答

5

這通常做的方式,該項目在資源庫的頂層只是一組分支/標籤/樹幹目錄。 trunk目錄您的「dev」元分支,並且您在branches目錄下創建了一個名爲「release」的樹幹分支,以充當穩定的產品就緒分支。如果您需要跟蹤多個版本(如v1.0和v2.0),那麼您將在branches下同時擁有「1.0」和「2.0」。準備好發佈代碼時,您需要在適當的版本分支中使用版本號標記。

我認爲你要做的事情會使存儲庫結構過於複雜。您可以實現您使用單個分支/標籤/中繼套件所需的一切。

也就是說,使用TortoiseSVN最容易創建分支,方法是將Repo-Browser導航到您從中複製的目錄(您的案例中的「dev/trunk」),右鍵單擊該文件夾,選擇「Copy To」 ,並在你的案例中輸入新分支的路徑(「release/trunk」)。

+0

同意。它應該是,而且的確很簡單。標記您的版本並在Trunk中進行開發。 – 2010-01-18 15:12:54

+1

好建議(儘管我會說它並沒有真正回答這個問題 - 我認爲他仍然需要知道如何用TortoiseSVN來實現你的建議)。 +1。 – 2010-01-18 15:13:12

+0

@j_random_hacker:也增加了這個建議。 – 2010-01-18 15:16:30

1

在Repo瀏覽器中,右鍵單擊您的源代碼所在的目錄(trunk?)並選擇「Copy to ...」。

但的確,您可能想要重新考慮結構。

1

打開TortoiseSVN的Repo瀏覽器(右鍵單擊資源管理器目錄列表中的任意位置),導航到您的開發目錄,右鍵單擊它並選擇「複製到...」。現在指定目的地。此操作將作爲單個提交進行,因此您將被要求輸入日誌。

我正在運行一個稍舊的TortoiseSVN(v1.4.8),但我相信這個或類似的東西會起作用。

0

您描述的設置通常稱爲「功能分支」。即你在一個單獨的分支上開發一個新功能,一旦它完成,你將它合併回主幹(始終保持穩定版本)。然後,庫結構可能是這樣的:

/trunk 
/branches/featureX 
/branches/featureY 
/tags 

要素的發展會那麼像這樣工作:

  • 創建分支爲待開發的功能(主幹的副本)
  • 當您在該分支上開發該功能時,您可能會定期將在主幹上所做的任何更改合併到您的分支中。這樣做是爲了保持軀幹和功能分支之間的差異儘可能小
  • 一旦你的功能非常齊全,你重返分支到主幹,然後刪除功能分支

你可以找到更多信息關於此場景以及subversion bookTortoiseSVN help中涉及的命令。