2008-09-25 102 views
7

我有一個Subversion版本庫,其中包含一個數字以便與各種應用程序,配置文件,DLL等對應的子文件夾(我將它們稱爲「模塊」 )組成我的項目。現在我們開始「分支」到幾個相關的項目中。也就是說,每個高級項目都將使用多個模塊,可能會略微修改項目之間的差異。項目數量比模塊數量(〜20)要小(〜5)SVN項目組織:每個模塊或每個項目

現在我試圖弄清楚如何組織回購。將每個項目的子子文件夾保留在逐個模塊的基礎上保留頂級子文件夾是否有意義?還是應該頂層是對每一個項目,具有其自身的模塊的子文件夾每個項目:

回購:

module 1 
    Project 1 
    Project 2 
    ... 

    Project 5 
module 2 
    Project 1 
    .... 
    Project 5 
.... 
module 20 
    Project 1 
    ... 
    Project 5 

- 或 -

回購:

Project 1 
    module 1 
    module 2 
    ... 
    module 20 
Project 2 
    module 1 
    module 2 
    ... 
    module 20 
... 
Project 5 
    module 1 
    module 2 
    ... 
    module 20 

回答

0

我想您使用「高級」來描述項目是什麼表明您應該有一個項目/模塊設置。

但是,您可以設置模塊和項目 - 即它們與SVN回購站處於同一級別。您的項目可以依賴於模塊,如果可能的話,項目可以提供特定的操作實現,將模塊轉換爲具有默認但可覆蓋的實現的基本模塊。

1

我會組織項目THEN模塊(你的第二個例子)。主要原因是因爲在管理項目方面存在更多的開銷,至少對我而言,管理模塊的成本更高。

每個不同的項目需要自己構建腳本設置,屬性文件等,它是一個更容易跟蹤的5個副本保存在電腦比20

1

我更喜歡第一個1。

儘管每個存儲庫都需要額外的努力來維護,但我喜歡我的修訂版本號以便對項目有意義。

即我們的旗艦產品有48123版本,我們的新項目有31版本修訂。如果您有版本庫間依賴關係,那麼您可以使用svn externals。

+0

+1這些內部版本號在連續編譯環境中很有用。 – JMP 2010-10-14 00:08:10

3

看起來最好是由項目組織在頂層,因爲您要檢出整個分支併爲項目提供工作副本。如果您按模塊進行組織,則必須執行多個簽出(每個模塊使用一個)才能將項目建立到可用的位置。

這可能是有意義的保持這兩個項目和模塊分開,例如:

Projects 
    Project 1 
    Project 2 
    ... 
Modules 
    Module 1 
    Module 2 
    ... 

如果您使用的是與SVN externals和/或vendor branches組合,可以支持不同的分支機構爲您的項目需要不同模塊版本,但是當項目發生共享相同版本的模塊時仍然受益於具有單個模塊源。

0

我傾向於按項目組織,但現在總是如此。如果你有訪問控制方面的代碼,那麼組織到最小化權限 - 管理;這也可能導致存儲庫的每個團隊組織。順便說一下:您似乎期望在一個大型資源庫中工作 - 我認爲這很聰明,因爲這意味着更好的歷史處理:只要您在資源庫之間移動內容,就會丟失歷史記錄。換句話說,我不同意Ben Scheirman對此的建議。