34.4 迁移后的版本库检查
完成迁移还不能算是大功告成,还需要进行细致的检查。
1.文件名和日志中的中文
如果转换过程参考了前面的步骤和注意事项,文件名和版本库提交日志中的中文就不应该出现乱码。
2.图片文件被破坏
最典型的错误就是转换后部分图片被破坏从而无法显示。这是怎么造成的呢?
CVS默认将提交的文件以文本方式添加,除非用户在添加文件时使用了-kb参数。用命令行提交的用户经常会忘记使用-kb参数,这就导致一些二进制文件(如图片文件)以文本文件的方式被添加到其中。文本文件在CVS检入和检出时会进行换行符转换,在服务器端换行符保存为LF,在Windows上检出时为CRLF。如果误以文本文件方式添加的图片中恰好出现了CRLF,则在Windows上似乎没有问题(仍然是CRLF),但是CVS库转换成Git库后,图片文件在Windows上再检出时,文件数据中原来的CRLF就被换成了LF,导致文件被破坏。
出现这种情况是CVS版本库的使用和管理上出现了问题,应该在CVS版本库中对有问题的文件重新设置属性,标记为二进制文件。然后再进行CVS版本库到Git库的转换。
3..cvsignore文件的转换
CVS版本库中可能存在.cvsignore文件用于设置文件忽略,相当于Git版本库中的.gitignore。因为当前版本的cvs2git不能自动将.cvsignore转换为.gitignore,这就需要在版本库迁移后手工完成。CVS的.cvsignore文件只对目录内的文件有效,不会向下作用到子目录上,这一点和Git的.gitignore不同。还有.cvsignore文件每一行都用空格分割多个忽略,而Git的每个忽略单独为一行。
4.迁移后的测试
一个简单的检查方法是,在同一台机器上分别用CVS和Git检出(或克隆),然后比较本地的差异。要在不同的系统上(Windows、Linux)分别进行测试。