我的團隊正在考慮從ClearCase的轉移到Subversion和我們正在考慮舉辦這樣的存儲庫:存儲庫佈局和稀疏檢出
\trunk\project1
\trunk\project2
\trunk\project3
\trunk\staticlib1
\trunk\staticlib2
\trunk\staticlib3
\branches\..
\tags\..
這裏的問題是,我們有很多的項目(1000+)並且每個項目都是鏈接到幾個常見靜態庫中的dll。因此,檢查中繼線中的所有內容都是非啓動器,因爲它會花費太長的時間(〜2 GB),並且對於分支而言很難實現。
使用svn:externals爲每個項目提取相關文件夾似乎並不理想,因爲它會生成多個工作副本 - 一個用於項目,一個用於每個靜態庫文件夾。如果更改跨越項目和一些靜態庫,我們也無法進行原子提交。
稀疏結帳聽起來非常適合這一點,因爲我們可以編寫一個腳本來只提取所需的目錄。但是,當我們想要將分支中的更改合併回主幹時,我們需要先檢查完整主幹。
不知道是否對1)更好的存儲庫組織或者2)將分支更改合併到稀疏主幹工作副本的方法?
我不會放棄那種快速的外部。他們也有優勢,您可以爲特定的項目標籤綁定特定的分支/標籤。從可重複地構建舊版本中拿出一些地獄。 – sbi 2010-04-13 16:08:59
嗯掛鉤對我們來說不會那麼有用,因爲開發任務通常會涉及項目和其中一些相關靜態庫的更改。 – Ying 2010-04-13 16:24:01
雖然外部本身很難自動標記。如果project1有staticlib1的頭部外部,你不能只標記project1,你還必須知道把staticlib1放到同一個標記中(假設外部是相對的),或者單獨標記它並修改外部(假設它是絕對的)。如果這是解決的,外部是偉大的。 – Eugene 2010-04-13 16:28:48