2009-01-26 89 views
3

是否可以忽略svn:externals屬性中引用的標記的外部依賴關係?這可能聽起來像一個很奇怪的問題,但讓我解釋一下...可以svn:外部使用,而忽略該網址的外部?

我有一個相當大的單個和「可插入」代碼模塊的集合,每一個都可以獨立測試,編譯和開發爲獨立項目。其中一些模塊依賴於其他模塊,通過svn:externals屬性。問題是我們的測試框架gtest也是每個模塊的依賴關係,並且包含一個用於測試套件的靜態庫,這意味着每個模塊至少大約15Mb,因爲我們已經爲多個平臺構建了這些靜態庫。

無論如何,這意味着一個相對簡單的項目在簽出時可能會佔用200Mb的磁盤空間,其中大部分是由於每個模塊的gtest副本。我的一些同事現在開始抱怨工作副本的臃腫大小,並且通過簡單地包括每個模塊的頂級處的gtest依賴性並且僅在構建中包括該副本。

基本上,我想要一種方法來在我的proplist中設置svn:externals,但檢查出每個依賴關係,就好像我要將「--ignore-externals」傳遞給svn co。這可能嗎?我有一種感覺沒有,但它值得一問...

回答

2

我會建議看稀疏結帳。簽出頂部目錄(只有'只有這個項目'選項),得到外部。然後,對於您想要的每個模塊,您可以使用所需的目錄更新WC,但省略了外部。重複所有子項目。

您可能仍然需要將gtest依賴項放在回購站中的另一個文件夾中,但我認爲它可能適用於您。

0

我不知道有什麼辦法讓svn跳過單一的依賴。

但我認爲你可以用另一種方式解決這個問題,通過使這些模塊的標籤發佈沒有共享依賴。其他依賴模塊可以將它們的svn:externals指向這些標記,而不是指向獨立編譯分支。

我只是建議這個,因爲它聽起來像你有一個單一的大型共享庫非常具體的問題。任何更復雜的東西,你可能不會用svn來解決這個問題:僅僅是外部。

+0

如何在沒有依賴的情況下製作標籤發佈? – 2009-02-27 21:23:58

0

Subversion從1.6.0+開始可以使用svn:externals引用file而不是目錄。這可能有幫助嗎?