VSS提供了基于Windows的界面VSS Explorer,对于一般性工作而言,使用VSS Explorer可以方便的进行Add、Check in、Check Out、Get Last Version等操作。
但是对于有经验的版本管理员或项目整合工程师来说,VSS Explorer略显Manual一些,也就是说无法进行自动化工作或批处理。尤其是当项目非常庞大,庞大到文件数目超过两万甚至五万,这时,从Server上Get全部文件的时间会相当的长,你可以安排在午餐时间来做这件事情,但是这期间可能会弹出一个对话框就会中断你的工作,或者还有一部分代码是放在别的Server上。
实际上,微软的工程师已经考虑到了这一点,VSS正提供了这样一种方式满足如上的需求,这就是命令行工具SS.exe,它可以完成VSS Explorer的全部操作。
SS.exe与SSExp.exe被安装在同一路径下,默认位置是C:Program FilesMicrosoft Visual SourceSafe。在使用它以前,我建议你在终端的环境变量中增加这个路径。
SET PATH=%PATH%;C:Program Files\Microsoft Visual SourceSafe
SS工具的基本语法是
SS command [one or more items] [one or more options]
Add | 新增文件. |
Branch | 允许一个文件的两个版本的并行开发 |
Checkin | 签入文件 |
Checkout | 签出文件 |
Cloak | Cloaks a VSS project. |
Comment | 为VSS数据库输入注释 |
CP | 设置当前项目路径 |
Create | 创建一个子项目 |
Decloak | Decloaks a VSS project. |
Deploy | 在服务器上部署一个Web项目或文件 |
Destroy | 永久的销毁文件或项目 |
Difference | 显示主副本与本地文件的不同 |
Directory | 列出当前项目或指定项目的内容 |
Filetype | 显示一个文件的类型(文本或二进制) |
FindinFiles | 在一个或多个文件中查询字符串 |
Get | 取得指定文件的只读副本 |
Help | 显示一个指定命令的帮助信息 |
History | 显示文件或项目的历史 |
Label | 对文件或项目的指定版本或当前版本设置标签 |
Links | 显示共享某一文件的全部项目 |
Locate | 在VSS项目中查找文件或项目 |
Merge | 将一个分支的改动合并到另一分支中 |
Move | 将一个子项目从其父项目移动到另一个项目中 |
Password | 这是当前用户的密码 |
Paths | Shows all share links that have been branched. |
Pin | 将当前项目中的某一文件的历史版本作为最新的版本. |
Project | 显示当前项目的路径 |
Properties | 显示一个文件或项目的基本信息 |
Purge | 清理(永久销毁)已删除文件和项目 |
Recover | 恢复已经删除的文件或项目 |
Remove | 删除(同Delete) |
Rename | 重命名一个文件或项目 |
Rollback | 恢复一个文件早期版本的改动 |
Share | 将指定文件或项目做为当前项目的成员 |
Status | 显示文件的签出信息 |
Undocheckout | 撤消签出文件 |
Unpin | 撤消Pin操作 |
View | 显示文件的文本 |
Whoami | 显示当前VSS的使用者名称 |
WorkFold | 设置工作目录 |
下面是一个范例,在这个范例中,假设项目Jupiter的VSS在服务器workserver的Jupiter目录,本地工作目录为d:\projects\jupiter,任务是同步VSS的文件,并取得所有这一版本更新文件的列表。则批处理脚本如下:
@echo off
SET VSSPATH=\\workserver\jupiter
SET VSSPRJ=$/
SET LOCALPATH =d:\projects\jupiter
path=%path%;C:\Program Files\Microsoft Visual SourceSafe
set SSDIR=%VSSPATH%
set ssuser=admin
set sspassword=
ss workfold %VSSPRJ% %LOCALPATH%
echo Comparing VSS database with local files...
del report.txt
ss difference -R -Oreport.txt
echo Sync files with VSS database...
ss get %VSSPRJ% -R -W
echo Finished!