命令行中使用VSS

命令行中使用VSS
Author:David Euler
Date: 2004/11/26
Email:de_euler-david@yahoo.com.cn
有任何问题,请与我联系:)

最近工作需要将三四百个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.一些通用的命令行选项:
Option
Description

-C
为指定项(可以是多项)做注释 (Dir例外)

-O
重定向命令

-V
操作某项的指定版本

-R
Perform a command recursively.

-S
Turn SmartMode on or off for the command.

-G
Change the way the Get command works on any file retrieved to the local drive.

-W
指明本机副本是否只读(使用此参数,表示writable)

-N
在长短文件名两种模式间切换

-I-
任何环境下都不提示输入

-Y
指定用户名和密码

-?, -H
两个参数的作用都是获得在线的帮助



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

posted on 2005-08-24 13:56  bmw  阅读(2598)  评论(4编辑  收藏  举报

导航