2008-09-08 69 views
4

我們有標準的Subversion trunk/branches/tags佈局。我們在中長期項目有幾個分支機構,但目前還沒有分支機構發佈。這接近快。什麼是Subversion版本和項目的良好存儲庫佈局?

難道我們:

  1. 混合釋放分支機構和項目分支在一起呢?
  2. 創建發佈文件夾?如果是這樣,是否有更好的名稱比發佈?
  3. 創建一個項目文件夾並將當前分支移動到那裏?如果是這樣,是否有比項目更好的名字?我在其他倉庫中看到過「沙盒」和「秒殺」。
  4. 幹什麼?

回答

-1

版本與標籤相同...你的箱子裏有多個項目嗎?在這種情況下,我會複製標籤內

所以

trunk 
    fooapp 
     stuff... 
    barapp 
     stuff... 
tags 
    fooapp 
     1.0.0 
     1.0.1 
    barapp 
     1.0.0 
+0

你從未想過爲什麼常規名稱是「trunk」而不是「trunks」?你得到的肯定是一個「中繼線」。這是如何與試圖提供標籤和分支抽象的Subversion客戶端一起使用的? – bendin 2009-06-01 10:27:52

+0

這是古老的,我知道,但僅僅因爲svn在「分支」和「標籤」下使用相同的功能並不意味着人們應該使用相同的功能。 – khedron 2009-08-26 19:07:00

0

當我們要進行的,比方說,3.1版的發佈做準備,我們創建了一個分支/ 3.1-release分支相同的文件夾,如果我們認爲合適,我們會合並個別提交(我們的發佈分支通常只接收來自主要開發分支的最重要的修復)。

通常情況下,此版本分支在Alpha測試階段和Beta測試階段生效,並且在下一個版本處於閾值時關閉。

還可以做什麼,一旦你的DVD被擠壓或下載包上傳,是發佈標記發佈分支,這樣你就可以從完全一樣的版本,如果你以後需要重建輕鬆。

卡爾

0

我們已經使用標籤,雖然我們有一個大的項目結構,而不是你所概述的許多小項目。

在這種情況下,我們需要標記,例如, 1.0.0,但也是分支,例如1.0。我擔心的是混合項目分支和釋放分支,例如

branches 
    this-project 
    that-project 
    the-other-project 
    1.0 
    1.1 
    1.2 
tags 
    1.0.0 
    1.0.1 
    1.1.0 
    1.2.0 
    1.2.1 
10

以下筆者推薦的佈局,有兩個原因: - 與給定項目的所有東西是樹的同一部分內;使得 人們更容易掌握 - 權限的操作可能會更容易這樣

順便說一句:這是一個與幾個倉庫是個好主意,而不是很多,因爲改變歷史通常是更好地保存這種方式(更改歷史記錄如果您在存儲庫之間移動文件,則會消失,除非您採取特殊且有點複雜的操作)。在大多數設置中,應該只有兩個存儲庫:主存儲庫以及供Subversion試驗的人使用的沙箱存儲庫。

project1 
    trunk 
    branches 
    1.0 
    1.1 
    joes-experimental-feature-branch 
    tags 
    1.0.0 
    1.0.1 
    1.0.2 
project2 
    trunk 
    branches 
    1.0 
    1.1 
    tags 
    1.0.0 
    1.0.1 
    1.0.2 
0

我在哪裏工作,我們有「臨時分支」和「分支分支」目錄而不是「分支」。因此,在你的情況下,項目分支將在臨時分支下進行,並且釋放分支(當然在創建時創建)將在分支分支下進行。

1

從其他人所說的話出發,我們有一個從alpha,beta到生產的相當嚴格的結構。阿爾法代碼是幹線的頭部,並且大部分都保持穩定,但並不總是如此。當我們準備發佈時,我們創建一個「發佈分支」來有效地凍結該代碼,並且只對其應用錯誤修復。 (這些被移植回幹線)。此外,標籤定期作爲發佈候選版本,這些都是beta版本。一旦代碼轉移到生產環境中,發行版分支將保持開放狀態以支持,安全和修復bug,並且小版本將被標記並釋放。

一旦不再支持特定版本,我們關閉分支。這使我們能夠明確區分什麼版本的固定錯誤,然後將它們移入幹線。

長期或長時間打破系統的重大,長期或巨大變化也會被賦予自己的分支,但這些變化壽命短得多,而且它們中沒有「釋放」一詞。

0

另一個重要的考慮是,當分歧及何時關閉一個分支 - 這取決於你的發佈時間表,但也需要多長時間你測試和釋放。根據我的經驗,這需要進行大量的管理,以確保團隊中的每個人都知道計劃是什麼以及何時使用什麼,所有這些都通過在發佈wiki中記錄全部內容來實現。

不太你要找的,但我認爲一旦你有排序的結構,其中你有很多很好的建議,已經,下一個挑戰是保持團隊知情和軌道上的答案。

相關問題