今天很失败,画了一个中午的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对待了。
其它版本没有环境测试了。