修复 VSS 文件丢失的错误
一、发现问题
近日用 Visual SourceSafe 管理源码的过程中,因为网络的突然故障,导致后来签入文件时报 VSS 找不到文件的错误,提示如图:
从 VS2005 和从 Visual SourceSafe Explorer 中签入都报此错误。
在 VSS 服务器上图中提示的录下,果然找不到 cfiaaaaa.b 文件。
二、尝试修复
此时启动“Analyze & Fix VSS DB”工具修复。
1. 如果有正在连接着 VSS 服务器的客户端软件,比如 VSS2005 或 Visual SourceSafe Explorer,必须先断开连接,否则报如下错误:
(Cannot rebuild the database while Visual SourceSafe is being run. Make sure all users have exited SourceSafe and try again.)
2. 如果 VSS 服务器的“\data\backup\”目录下已存在“analyze.log”文件,必须首先删除,否则报如下错误:
3. 再次运行“Analyze & Fix VSS DB”工具,结果还是找不到文件:
三、最终解决
很简单,在“\data\c\”目录下随便找一个文件,复制粘贴重命名为“cfiaaaaa.b”,然后再次运行“Analyze & Fix VSS DB”工具,成功修复。
客户端已可正常签入签出。
猜想 VSS 目录中那些用 abcdefg 命名的文件,其关系可能跟磁盘冗余阵列相似,丢失的数据可以根据剩下的计算出来。