由于工作需要,最近在Linux服務器上試用Subversion,如果一切順利,全公司的文檔都將交給Subversion管理。我承認我對Subversion一直存在偏見,但為了給大家一個交代,還是硬著頭皮小試了一下。結果運行數天以后,終于還是回到了CVS的老路上。
Subversion的優點就不在這里重復了,網上很多介紹文章,也有很多忠實粉絲,不過沒辦法,我還是更喜歡CVS的簡單和直接。熟悉Unix和類Unix系統的朋友一定有同感,CVS更加符合Unix的思維和解決問題的方式。
讓我們最終放棄Subversion主要有以下大大小小的原因:
1- 一個新建的幾乎是空的資源庫,打包后大小即有39MB上下; << 經核實錯怪SVN了,實測完全空白的資源庫124K,向大家道歉!
2- 資源庫幾乎是以一種完全不透明的方式存儲用戶資源庫文件;
3- 沒有一個官方的、安全可靠的方式徹底刪除一個誤提交的文件,一旦提交上去,你的資源庫將永遠背著這個包袱; << 這一條實在讓我無法忍受。
對于最后一條,官方說法是提供了一個svndumpfilter的方式,先把資源庫dump出來,然后pipe到svndumpfilter過濾掉匹配的文件,最后再load回去。這幾乎就是給我們判了死刑:dump文件動輒就會是好幾個G,且隨著時間增長,或者錯誤提交持續出現在超大型文件上,要完成這個dump和filter,以及周期性的備份,將要吃掉多少資源,不敢想象;svndumpfilter不支持wildcast,且這個字符串匹配由于是整個dump文件pipe到svndumpfilter,無法保證精確制導,尤其在生產環境,敏感文件被上傳、有效文件被誤刪或者資源庫遭到破壞的后果是很嚴重滴。