UML软件工程组织

 

 

命令行中使用VSS
 
作者:David Euler 来源:chinaitpower.com
 

最近工作需要将三四百个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

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号