目前,我們有我們我們的源代碼存儲。我們有一個大範圍的項目有(數百個)和多個公共圖書館等源代碼控制版本和引用
這一切都工作的很好SVN存儲庫中,但它結構不規範。最初我們的目標是標準的「Trunk \」,「Tags \ Tag_1.0.0 \」樣式模型,但是我們遇到的問題是我們項目的相對路徑停止工作。
EG:
- Common
|- Trunk
|- Tags
||- Tag_1.0.0
- OtherProject
|- Trunk
|- Tags
||- Tag_1.0.0
在這種結構中(我會打電話給比較規範,糾正我,如果我錯了)在OtherProject共同的標籤從後備箱夾的引用將是」 ../ ../Common/Tags/Tag_1.0.0「,它解析爲/Common/Tag_1.0.0(實際上會有更多的..因爲這些項目在主幹中並不平坦,但是這樣可以節省巨大的圖表)。一旦標記了相同的相對路徑即可進入「/OtherProject/Common/Tags/Tag_1.0.0」。
解決方法我可以想到的解決方法包括絕對路徑,但不是所有的開發人員都使用相同的文件夾來存儲我們的文件(或者甚至是相同的硬盤驅動器號),在標記之前更改引用權限,但是標記主幹時有些可怕它不會編譯並希望一旦它在標記文件夾中就可以工作,或者將每個項目的引用放入項目本身的DLL形式中,但在Visual Studio中並不那麼容易(對於我們來說,引用中繼到並且同時編輯這兩個項目 - 當然後面會加上標籤),它會讓我們的SVN倉庫膨脹,以包含所有已發佈標籤的所有版本。
這導致我們將我們的標籤放置在與Trunk相同的層級。
EG:
- Common
|- Trunk
|- Tag_1.0.0
- OtherProject
|- Trunk
|- Tag_1.0.0
我們不能是唯一的誰有這個問題,所以我很好奇聽到的話,任何人有這個戰鬥獸和他們做了什麼來解決它?我們的方法是錯誤的還是我們忽略了一個可以幫助解決這個問題的工具?
實際上一個好主意,一個我們差點去的。在我們決定反對到底只是在大小的檢出會如果我們的共享庫中每個引用的應用程序單獨被檢出成了。這是我見過的最好的答案,所以我會給它一個答案,但我開始想,也許我的錯誤是試圖符合標準,即使它不適合我們(這些例子中的大多數似乎像他們想的,做了幾個大項目,一個公司工作的偉大,但是這不符合我們的商業模式。我們有很多的共享代碼一噸的小項目)。 – fyjham 2009-11-26 10:59:43