我有一个 cvs 服务器,里面有一个很大的 binray 文件(大约 50Mb),它的 rcs 文件大约有 2G
今天我发现文件更新返回一个错误:
cvs [update aborted]: unexpected EOF reading /repository/cvsroot/dir/file,v
我检查了 cvs 服务器,它显示 /repository/cvsroot/dir/file,v 已被完全破坏,大小约为 100K。
我从备份中恢复了文件,但不幸的是我再次遇到了同样的问题。
第二次文件替换后,它运行正常,但我无法找到这种行为的原因。
这似乎不是硬件故障,因为同一磁盘上的所有其他文件都正常,并且 smartctl 没有显示任何错误或可疑警告。
有没有办法可以找到这个问题的根源?
ps. cvs 在 red hat 5.5 上运行,cvs 版本是 1.12.6。
更新。实际上过了一段时间文件又坏了。所以 cvs 看起来在这种情况下是无法使用的。不幸的是由于政治限制我无法迁移到另一个 VCS 比如 git(至少在今年年底之前)。
upd2。经过一些实验,我发现大多数操作都成功通过,但 cvs rtag 会破坏文件。我甚至将文件移到另一个项目中并尝试对其进行 rtag,结果立即得到了损坏的文件。完整的 rtag 命令:
cvs rtag -B -a -F -r 1.447 -b "branch" project/file
答案1
检查您使用的是正确的 32 位或 64 位版本。