VSS错误自动修复
公司项目开发源代码管理一直用vss,从vss6.0用到vss8.0(vss2005),在近两年的试用中碰到一些大大小小的问题:
1:vss服务迁移,这个比较好办,直接将整个vss目录拷贝过去,加上相应的权限就行了
2:vss错误修复,
由于各种原因(vs出错,vs强行结束,网络错误,vss服务器异常启动,关机等),1个工作日下来,vss服务或多或少的总有一些问题,vss出了错误后,从vs中打开程序有时候会很慢或异常,所以必须要修复。由于对vss了解肤浅,处理这个问题也经历了几个阶段
a、运行 Microsoft Visual SourceSafe Administration 后,如果有错误,会提示需要检查修复,一般就用这个检查下。
运行时间:不定期
其实这里面有问题,它应该只是检查了错误,而没有修复错误。
b、手动运行批处理文件修复
a方法每次都需要人工去运行挺麻烦,就做了1个批处理文件。点击执行就可以了。批处理文件内容如下:
"c:\Program Files\Microsoft Visual SourceSafe\analyze.exe" -f e:\vss\data
用法就不具体解释了,可以在dos命令下查看analyze.exe的使用说明
运行时间:1周1次,需要确保所有用户都没有使用vss
c、自动运行修复
用了AutoMate(定时执行任务的工具,比较好用,功能很强大)来自动运行vss修复任务
运行时间:1周几次,设置在凌晨1:00运行(具体看各自情况)
但运行了几个月后,最近发现1点问题,修复失败了,错误如下:
Visual SourceSafe Analyze Version 8.0
Copyright (C) Microsoft Corporation. All rights reserved.
Database analysis in progress @ 07-10-06; 8:11.
File e:\vss\data\status.dat is already open
Cannot rebuild the database while Visual SourceSafe is being run. Make sure all users have exited SourceSafe and try again.
Analysis complete @ 07-10-06; 8:11
但检查用户确没有发现有用户连接vss。google下之后,没有找到好的办法,只好将vss服务重启了下,就不报这个错误,就能正常修复了。估计是缓存原因引起的。
找到问题后,将自动运行的批处理文件内容做了一些修改,停止vss服务,修复vss,启动vss服务,批处理内容如下
net stop ssservice
"c:\Program Files\Microsoft Visual SourceSafe\analyze.exe" -f e:\vss\data
net start ssservice
经运行证实可行。 但还有个问题,如果分析的过程中异常了,vss服务将不能启动,所有做个调整,重启vss服务后,再修复,批处理文件内容如下:
net stop ssservice
net start ssservice
"c:\Program Files\Microsoft Visual SourceSafe\analyze.exe" -f e:\vss\data
最后强调一点:修复vss的时间,一定要再vss使用闲时,因为vss修复时vss不能提供服务。
附注:
几篇参考文章:
http://www.cnblogs.com/kaima/archive/2007/06/26/693268.html
http://www.cnblogs.com/LeeWenjie/archive/2006/11/24/509498.html
http://www.cnblogs.com/RChen/archive/2006/01/12/315861.html
http://support.microsoft.com/kb/279191/zh-cn