最近在项目开发和管理过程中使用 VSS 经常需要重复建立例似的文件夹 , 修改的 source 要抓取 differents 文档 , 使用手动建立和抓去 diff 文档比较费时 , 使用 vss 命令行作成批处理或者编写一些小工具还是比较方便的 .
首先要运行 vss 的命令行当然要安装 vss, 其次是要让控制台找到 vss 的 ss 命令
1 、设置环境变量
Path=%path%;C:/Program Files/Microsoft Visual Studio/VSS/Win32
如果要开发小工具也可以将 VSS 中 的 ss.exe 和相应的 dll 文 件拷贝出来。
2 、指定 VSS 数 据库目录,即 ini 文件所在目录
set ssdir=// 机器名或者 IP/VSS 共享目录
如: set ssdir=//freefly/VSS
3 、登陆 VSS
ss cp –Yfreefly, f12345 –I-
-Y 后没有空格,登陆后就可以对 VSS 进行操作了
4 、指定当前 VSS 项 目目录
ss cp $/root/prj001
ss 命令中,/ 表示VSS 的当前目录,$/ 表示根目录
5 、向 VSS 中 添加文件
(01 )ss add class1.java class2.java ,把class1.java class2.java
将两个文件添加到当前项目;
(02 )ss add -r *
把当前目录的所有文件及文件夹(包括子文件夹、文件)添加到当前项目;
(03 )ss add -d- *.java
添加当前目录 的所有DLL 文件到当前项目,但不保留VSS 上 的历史文件(以节省空间);
(04 )ss checkout class1.java class2.java
checkout 当前项目中的两个文件
(05 )ss checkout $/prj001/ class1.java
checkout 指定项目中的文件
(06 )ss checkout -r $/prj001
循环check 项目 $/prj001
(07 )ss comment class1.java -v5
改变class1.java 的版本号为5 的 版本注释
(08 )ss comment class1.java
改变class1.java 的最新版本的注释
(09 )ss comment $/prj001
改变项目$/prj001 的注释
(10 )ss Create $/ prj002
VSS 的根目录下,创建项目 WORD
(11 )ss Create prg001
VSS 的当前目录下,创建项目 WORD
(12 )ss cp $/prj001
设置$/ prj001 为 Current Project
(13 )ss cp ..
跳转到当前项目的父项目
(14 )ss delete $/prj001/class1.java
删除文件class1.java (delete 命令删除的文件,可以用直接add 命 令回复, 如add class1.java)
(15 )ss delete $/prj001
删除项目 ( 不可以有两个同名的文件被(16 )delete ,因为没有真正删除 )
(17 )ss -s delete *.*
删除所有文件,-s 表示删除VSS 上 的文件之后,删除本机文件
(18 )ss destroy $/prj001/ class1.java
持久删除文件( 不可恢复 )
(19 )ss destroy $/prj001
持久删除项目
(20 ) ss history $/prj001/class1.java –o@c:/class1.history
将 class1.java 的所有版本信息保存到本地 c 盘 class1.history 文件
( 21 ) ss diff $/prj001/class1.java –v1~2 –bs –DX500 –o@c:/class1_01-02_diff.txt
将 class1.java 第一版和第二版 source 的不同点写入 class1_01-02_diff.txt 文 件中, 500 为写入文件的行宽,即 500 个 字符。
( 22 )其 他更改操作:
label,merge,move,password,purge,recover,rename,rollback,share,undocheckout,workfold,branch 等命令,这些命令会改变VSS 数 据库的内容或者环境。
(23 )VSS 命令行中的比较/ 查找/ 显示等不改变数据库和环境的命令: diff,dir,FileType,Get,help,history,links,paths,project,properties,status,view,whoami
注 意:
vss 命令行是大小写不敏感的;命令行中的命令不需要全名,同sql 一 样,只要是可以识别的名字及可, 如Dir 就 是directory 的缩写;( 遵守UNC 通用命名规则,Universal Naming Convention) 命令中有空格时,用双引号括起整个选项