2008-11-08 50 views
3

我們很高興在工作中使用SVN for SCM。目前我已將我們的二進制資產與我們的代碼放在同一個SVN存儲庫中。 SVN支持非常大的文件(它會'流暢地傳輸'以保持內存使用的健全),但它使一切都很慢。我對緩慢的資產版本控制可以,但是慢速文本操作並不是真的可以接受。SVN優化以保持大型存儲庫的響應

現在資產處於/ trunk/release(與一打/ trunk /項目並排)。我們應該讓他們在一個單獨的存儲庫?我們還能做其他什麼優化?我們擁有大約1GB的資產並不斷增長。

回答

1

IMNSHO它更好地將每個項目保存在自己的存儲庫中,如果只是爲了保持版本號在它們之間分開。如果項目foo在六個月內沒有改變,但項目欄正在積極開發中,爲什麼foo的當前修訂版本號仍在變化。也許例外,如果兩者緊密結合(就像他們共享一個共同的圖書館),但即使如此,也許圖書館也應該是自己的項目。

二元資產是否永遠在變化或者它們是靜態的?如果它們是靜態的,也許你根本不需要它們在存儲庫中(只留下一個小的位置)。

+2

SVN revnum不是項目特定的,它的存儲庫特定的。它認爲foo得到新的revnum是一個錯誤 - 如果foo沒有改變,它就不會得到新的revnum! foo的當前revnum或者是'HEAD',或者是項目foo被更改的最後一個revnum。 – gbjbaanb 2010-07-23 16:34:46

2

你沒有說你已經使用了哪些優化。如果您使用的是bsdfs,請查看切換到fsfs是否可以提高性能。如果您有大量修訂,請切換到服務器上的更新版本,然後將存儲庫轉換爲1.5格式。

0

可能你要得到的最佳答案是把你的二進制文件放到一個單獨的目錄中,並使用備用目錄功能來管理它們 - 也就是說,在你需要它們之前不要檢出文件。然後,所有操作都將在源文件上發生,而不是二進制文件。

或者,您可以使用相同的機制來提交或更新 - 而不是更新您的工作副本,您可以使用'更新到修訂版',並指定HEAD和減少的深度,因此二進制目錄不會更新(直到你需要)。

您也可以'svnadmin pack'您的回購,這將提高服務器端的性能。