2009-06-16 90 views
0

說我有一個repositry佈局如下所示:使用具有多個項目的版本控制,當處理項目引用

|Root 
    |->CommonLib 
    |->ProjectA.PartA 
     |->trunk 
      |->lib 
      |->src 
      //etc 
    |->ProjectA.PartB 
     |->trunk 
      |->lib 
      |->src 
    //About four more projects. 

現在我將它們分割成這樣,這樣我可以在每個不同的部分工作,如果分支它們我需要。

ProjectA.PartA使用ProjectA.PartB作爲參考。

之前,我的結構像這樣我把所有的項目樹幹在一個src文件夾,而且只會拉該文件夾下,然後將項目添加到一個解決方案,只是它們之間添加項目引用。

這工作得很好,而他們所有在同一文件夾,但我覺得它可能不是很好的做法,它迫使你有相同的文件夾結賬結構或依賴關係破裂。

我在哪裏構建每個項目,並將二進制文件存儲在根目錄下的CommonLib文件夾中,然後在每個項目上使用svn:externals將它的依賴從CommonLib文件夾下拉到它的lib文件夾中,並添加一個引用:而不是項目本身。

上述解決方案是否會更好,然後添加項目引用?

有內部項目引用時常見的做法是什麼?

如果它們是相同的「目標」的所有部分應我只是對所有的項目文件夾拉下依賴源設置的外部?

謝謝。

+0

只是可以肯定,是A部分和B部分只是在同一個項目的一部分,或者是B部分可能與其他項目以及共享? – 2009-06-17 06:22:05

回答

2

SVN副本很便宜,SVN合併很容易。所以我會堅持一個根解決方案,並讓項目相互引用。如果需要的話,分支整個事情,然後重新整合。

1

通常我會從每個解決方案使用外部引用項目而不是庫本身。在這種情況下,在每個項目中進行單元測試以進行迴歸測試非常重要。

這也是精(也許更安全)來存儲二進制文件和引用這些與外觀等。如果我這樣做,我會標記每個版本的依賴二進制文件並引用它。如果我想升級,我會更改外部使用新標籤 - 這可以讓您更安全地升級庫。

編輯: 我剛剛意識到你正在分裂成同一個項目的兩個部分 - 我上面的答案是跨多個項目的共享庫。我將讓他們在同一個樹幹爲懷亞特說

相關問題