今天很失敗,畫了一個中午的Visio流程圖,在CVS上提交的時候,提交是成功了,就是文件被破壞掉了,大小變成了1KB。仔細看了一下,原來是Visio的文件.vsd的被CVS識別成Text的了,但是我確定我添加這個文件的時候是按照Binary的方式來添加的啊。于是繼續做實驗,發現果然是,即使你按照Binary的方式添加,在提交完畢之后,就變成了Text方式了。
于是查看CVS的文檔,也就是-kb參數來設定文件的類型。我切換到命令行方式,還是一樣,被識別成Text的了。
于是想找一種方式,來解決這個問題,否則在之后的工作中會有麻煩的(其實PowerDesigner的文檔.pdm的也存在這種情況,但是至少.pdm是真正的文本文件,即使發生了沖突,雖然幾率較小,也是可以在文文本編輯器中修改回來,但是Visio就不一樣了,.vsd可是真正的Binary的文檔啊)。
看到cvs文檔上說,可以修改cvswrappers文件來設定擴展名對應的處理方式,是Text還是Binary的方式,因為CVS并不能準確判斷你加入的文件的類型。
1. 使用WinCVS客戶端或者cvs.exe命令行工具檢出CVSROOT這個Module,需要注意的是,這個Module的安全界別設置比較高,需要Administrator或者有Admin權限的用戶才可以。可以登錄到服務器查看一下CVSROOT\CVS\fileattr.xml
2. 修改cvswrappers文件,里面有簡單的說明,在最后加入兩行:
*.vsd -kb
*.pdm -kb
如果是其它的CVS版本,參考cvswrappers文件注釋部分的內容
3. Commit 文件 cvswrappers
然后就可以添加.vsd的文件了,果然能夠識別成Binary的了。
上面描述的問題和解決辦法是 CVSNT 2.5 版本的,
在CVSNT 2.0版本中,如果你Add文件時用Binary方式,那么之后的操作就是以Binary對待了。
其它版本沒有環境測試了。