技术开发 频道

命令行中使用VSS

【IT168 技术文章】

    最近工作需要将三四百个DLL文件汇入到VSS数据库中,并且一个个打上Lable号,label号取的DLL的版本号(就是选中,点击鼠标邮件,属性里面可以看到的版本号),初步算了一下,这样几百个文件,一个Check out/Check in,再找到Label号,打上Label号,少说也要花上一两天的时间,这样实在是太慢了。下午希望能够通过在DotNet中编程来操作VSS数据库,于是查帮助文档,没有看到相关资料,倒是看到说VSS有命令行可以使用。于是网上搜了一下,也没看到几篇介绍VSS命令行的文章,还是看帮助文档吧,看了一个下午,一个晚上。再结合C#或者C/C++的使用,基本上以后可以实现自动Check
Out/Check In并且自动打Label号了。简单总结了一下,下面是VSS的一些常用命令和操作:

    1.setup environment variable: //指向ss.exe所在的路径
    path=%path%;C:\Program Files\Microsoft Visual Studio\VSS\win32

    2.指向VSS数据库的所在目录
    set SSDIR=\\gqa-eric-lv\VSS\   set SSDIR=\\Guruvss\erp$\

    3.登陆VSS:   ss  CP -Yeric,eric123 -I- -s\\gqa-eric-lv\vss

    4.获取任一目录的任一文件到本机(下例将$/ASP.Net/DataGridTest/index.aspx文件get到D:\tmp目录)
    ss get -GLD:\tmp $/ASP.Net/DataGridTest/index.aspx
    (ss get, -GLpath Copies a file to the specified folder, not to the current or working folder. )

    5.分屏显示目录ASP.Net中的所有文件和文件夹(包括子文件):
    ss dir $/ASP.Net -R|more (另外,有-I -V 两个参数,作用未知)

    6.set Current Project:   ss cp $/SQL-sample

    7.vss命令行是大小写不敏感的;命令行中的命令不需要全名,同sql一样,只要是可以识别的名字及可,如Dir就是directory的缩写;   (遵守UNC通用命名规则,Universal Naming Convention)

    8.一些通用的命令行选项:

    9.命令中有空格时,用双引号括起整个选项,如用ss CP "-Yeric Lv",eric123 而不用ss CP -Y"eric lv",eric123,

    10.启动图形界面:ssexp -s\\gqa-eric-lv\vss

    11.ss命令中,/表示VSS的当前目录,$/表示根目录,常用操作命令如下:
    ss Add TEST.C "My long filename.H" ,把TEST.C和"My long filename.H"两个文件添加到当前项目;
    ss Add -R *,把当前目录的所有文件及文件夹(包括子文件夹、文件)添加到当前项目;
    ss ADD -D- *.DLL,添加当前目录的所有DLL文件到当前项目,但不保留VSS上的历史文件(以节省空间);
    ss Checkout TEST.C TEST.H Checkout当前项目中的两个文件
    ss Checkout $/TESTDATA/TEST.C Checkout指定项目中的文件
    ss Checkout -R $/TESTDATA 循环Check项目$/TESTDATA
    ss Comment TEST.C -V5 改变TEST.C的版本号为5的版本注释
    ss Comment TEST.C 改变TEST.C的最新版本的注释
    ss Comment $/TESTDATA 改变项目$/TESTDATA的注释
    ss Create $/WORD VSS的根目录下,创建项目WORD
    ss Create WORD VSS的当前目录下,创建项目WORD
    ss Cp $/WORD 设置$/WORD为Current Project
    ss Cp .. 跳转到当前项目的父项目
    ss Delete $/PRJ/TEST.C 删除文件TEST.C (delete命令删除的文件,可以用直接add命令回复,如Add test.C)
    ss Delete $/PRJ 删除项目 (不可以有两个同名的文件被delete,因为没有真正删除)
    ss -S Delete *.* 删除所有文件,-S表示删除VSS上的文件之后,删除本机文件
    ss Destroy $/PRJ/TEST.C 持久删除文件(不可恢复)
    ss Destroy $/PRJ 持久删除项目

    12.其他的更改操作有:
    label,merge,move,password,purge,recover,rename,rollback,share,undocheckout,workfold,branch等命令,
这些命令会改变VSS数据库的内容或者环境。

    13.VSS命令行中的比较/查找/显示等不改变数据库和环境的命令:
    diff,dir,FileType,Get,help,history,links,paths,project,properties,status,view,whoami

    14.显示最近的Version,Label信息:SS properties

    15.显示Checkout的文件:SS Status

0
相关文章