您沒有設置顛覆使用任何的這些方法,您可以指定將文件複製到存儲庫時使用的方法。通過「方法」,我不是指你提到的4中的任何一個,而只是「導入」或「提交」,並且你必須告訴Subversion每次你想要存儲新的方法時選擇的方法將該文件修改爲存儲庫。
參見Performance tuning Subversion。
正如你可以從描述中看到的那樣,爲了使用「方法1」,壓縮到tar然後使用導入,他們必須自己將所有的二進制文件壓縮成.tar文件,然後使用導入命令Subversion將文件添加到存儲庫中。
另外需要注意的是,導入命令將文件存儲爲新文件,而不是作爲之前版本的增量,因此,如果對大文件進行少量更改,它可能會比較省時,但不會節省空間承諾。
Subversion本身只提交和導入。提交是對現有文件的新修訂,作爲一系列增量(或新文件的第一個修訂版本)存儲,而導入只是一個新文件。除此之外,你必須自己做。
如果二進制文件現在纔再變,這可能是值得期待更進,但如果是定期更換,我只是使用Subversion爲正常,commit命令提示。
另請注意,關於二進制文件的典型建議是,如果可能的話,您代替二進制文件將源代碼存儲到生成這些二進制文件的任何內容,然後重新運行這些工具以重新生成實際的二進制文件。如果二進制文件需要時間或空間來重現,那麼只有在這之後您纔會保存有問題的二進制文件。
二進制文件的問題並不是真的很好比較,因此如果開發人員a和b都檢索最新版本,然後開發人員a在開發人員b嘗試做同樣的事情之前提交新的修訂,某種類型的衝突將發生。開發商B可能沒有選擇,只能嘗試自己找出變化。
編輯:我想強調,我的意思COMMIT和導入。
的主要區別是,提交會,假設你已經在倉庫中的文件已經,嘗試diff的文件中對以前的版本庫工作拷貝,只存儲改變。這需要時間和內存,以便找出這些差異,但通常會導致版本庫中的修訂版本更改。換句話說,Subversion服務器上的磁盤空間比IMPORT命令的影響要小。
另一方面,IMPORT將導入新文件,就好像您剛給它一個新文件並且說「忘記前一個,只是存儲此文件」,因此不會花費時間或內存找出差異,但是由此產生的變更集會更大。換句話說,Subversion服務器上的磁盤空間將比COMMIT命令受到的影響更大,但IMPORT的運行速度通常要快得多。
要施加任何其他的工作流程有顛覆之外的工作要做。這包括操作系統中可用的TAR命令和壓縮選項。如果你想使用「方法1」,你自己必須手動壓縮你想要導入的文件到一個單一的.tar文件,然後再提交給Subversion。你不能要求Subversion爲你做這些。你當然可以創建腳本文件來使這個過程自動化一些,但是,這仍然不是一個Subversion問題。
我會做這個一些嚴重的測試,以找出是否收益實際上是值得額外的工作,你會強加給你的Subversion工作流程。
你基本上說只有2個選項是IMPORT和COMMIT? 並且導入可以選擇導入壓縮的tar文件(壓縮manualy)還是常規文件? 哪一個是時間效率? 謝謝:) – Oded 2009-07-20 07:32:46