作者
这些任务为 Microsoft Visual SourceSafe SCM 提供接口。 org.apache.tools.ant.taskdefs.optional.vss 包包含一个简单的框架来支持 VSS 功能,以及一些封装常用 VSS 命令的 Apache Ant 任务。 虽然可以在桌面使用这些命令,但它们主要用于自动化构建系统。
如果在运行这些命令时出现 CreateProcess error=2 错误,则表示未找到 ss.exe。 检查是否可以从命令行运行它 - 您可能需要更改路径或设置 ssdir 属性。
| 任务 | 描述 |
|---|---|
| vssget | 检索指定 VSS 文件的副本。 |
| vsslabel | 将标签分配给指定版本或文件的当前版本或项目。 |
| vsshistory | 显示 VSS 中文件或项目的历史记录。 |
| vsscheckin | 使用对签出文件所做的更改更新 VSS,并解锁 VSS 主副本。 |
| vsscheckout | 将文件从当前项目复制到当前文件夹,以便进行编辑。 |
| vssadd | 将新文件添加到 VSS 存档中 |
| vsscp | 更改 VSS 中使用的当前项目 |
| vsscreate | 在 VSS 中创建项目。 |
执行 GET 命令到 Microsoft Visual SourceSafe 的任务。
如果从版本、日期和标签中指定了两个或多个属性,则将按版本、日期、标签的顺序使用其中一个。
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要对其执行操作的项目/文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| localpath | 覆盖工作目录并获取到指定路径 | 否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| writable | true|false |
否;默认 false |
| recursive | true|false。 但是请注意,在 SourceSafe UI 中,有一个通过 工具/选项/常规选项卡访问的设置,称为 递归操作项目。 如果选中此设置,则 recursive 属性实际上会被忽略,并且 get 将始终递归执行。 |
否;默认 false |
| version | 要获取的版本号 | 否;只能使用其中一个 |
| date | 要获取的日期戳 | |
| label | 要获取的标签 | |
| quiet | 抑制输出 | 否;默认为 off |
| autoresponse | 要回复的内容(设置 -I 选项)。 默认情况下,使用 -I-;Y或 N的值将附加到此。 |
否 |
| writablefiles | 本地文件可写时的行为。 有效选项为:replace、 skip和 fail; skip意味着 failonerror= false |
否;默认为 fail |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程 |
否;默认为 true |
| filetimestamp | 设置本地文件时间戳的行为。 有效选项为 current、 modified或 updated。 |
否;默认为 current |
请注意,只能指定版本、日期或标签中的一个
使用用户名 me
和密码 mypassword
对 VSS 项目 $/source/myproject 执行 get 操作。 这将递归获取标记为 Release1
的文件,并将它们写入本地目录 C:\mysrc\myproject。 本地文件将可写。
<vssget localPath="C:\mysrc\myproject"
recursive="true"
label="Release1"
login="me,mypassword"
vsspath="$/source/aProject"
writable="true"/>
执行 LABEL 命令到 Microsoft Visual SourceSafe 的任务。
将标签分配给指定版本或文件的当前版本或项目。
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要对其执行操作的项目/文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| label | 要应用于层次结构的标签 | 是 |
| version | 要标记的现有文件或项目版本。 默认情况下,标记当前版本。 | 否 |
| comment | 此标签要使用的注释。 空或 -表示没有注释。 |
否 |
| autoresponse | 要回复的内容(设置 -I 选项)。 默认情况下,使用 -I-;Y或 N的值将附加到此。 |
否 |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程。 |
否;默认为 true |
使用用户名 me
和密码 mypassword
,用标签 Release1
标记 VSS 项目 $/source/aProject 的当前版本。
<vsslabel vsspath="$/source/aProject"
login="me,mypassword"
label="Release1"/>
用标签 1.03.004
标记 VSS 文件 $/source/aProject/myfile.txt 的版本 4。 如果此版本已存在标签,则操作(以及构建)将失败。
<vsslabel vsspath="$/source/aProject/myfile.txt"
version="4"
label="1.03.004"/>
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要对其执行操作的项目/文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| fromDate | 比较的开始日期 | 见下文 |
| toDate | 比较的结束日期 | 见下文 |
| dateFormat | fromDate 和 toDate 中日期的格式。 在使用 numdays 属性计算日期时使用。 此字符串使用 SimpleDateFormat 的格式化规则。 | 否;默认为 DateFormat.SHORT |
| fromLabel | 比较的开始标签 | 否 |
| toLabel | 比较的开始标签 | 否 |
| numdays | 比较的天数。 | 见下文 |
| output | 写入差异的文件。 | 否 |
| recursive | true|false |
否 |
| style | brief、 codediff、 default或 nofile。 |
否;默认为 default |
| user | 我们要查看其更改的用户的名称 | 否 |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程 |
否;默认为 true |
有不同的方法可以指定要评估的时间范围
显示 Release1
和 Release2
之间的全部更改。
<vsshistory vsspath="$/myProject" recursive="true"
fromLabel="Release1"
toLabel="Release2"/>
显示 2001 年 1 月 1 日至 2001 年 3 月 31 日之间的全部更改(在德国,日期必须根据您的区域设置指定)。
<vsshistory vsspath="$/myProject" recursive="true"
fromDate="01.01.2001"
toDate="31.03.2001"/>
显示过去两周内的全部更改。
<tstamp>
<format property="to.tstamp" pattern="M-d-yy;h:mma"/>
</tstamp>
<vsshistory vsspath="$/myProject" recursive="true"
numDays="-14"
dateFormat="M-d-yy;h:mma"
toDate="${to.tstamp}"/>
执行 CHECKIN 命令到 Microsoft Visual SourceSafe 的任务。
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要对其执行操作的项目/文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| localpath | 覆盖工作目录并获取到指定路径 | 否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| writable | true|false |
否 |
| recursive | true|false |
否 |
| comment | 要用于签入文件的注释。 | 否 |
| autoresponse | Y、 N或空。 指定如何回复 VSS 的问题。 |
否 |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程。 |
否;默认为 true |
使用本地目录 D:\build 签入项目 $/test 中名为 test* 的文件。
<vsscheckin vsspath="$/test/test*"
localpath="D:\build\"
comment="Modified by automatic build"/>
执行 CHECKOUT 命令到 Microsoft Visual SourceSafe 的任务。
如果从 version、date 和 label 中指定了两个或多个属性,则将按 version、date、label 的顺序使用其中一个。
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要对其执行操作的项目/文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| localpath | 覆盖工作目录并获取到指定路径 | 否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| writable | true|false |
否 |
| recursive | true|false |
否 |
| version | 要获取的版本号 | 否;只能使用其中一个 |
| date | 要获取的日期戳 | |
| label | 要获取的标签 | |
| writablefiles | 本地文件可写时的行为。 有效选项为:replace、 skip和 fail; skip意味着 failonerror= false |
否;默认为 fail |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程。 |
否;默认为 true |
| filetimestamp | 设置本地文件时间戳的行为。 有效选项为 current、 modified或 updated。 |
否;默认为 current |
| getlocalcopy | 设置检索文件本地副本的行为。 | 否;默认为 true |
将项目 $/test 递归签出到目录 D:\build。
<vsscheckout vsspath="$/test"
localpath="D:\build"
recursive="true"
login="me,mypass"/>
| 属性 | 值 | 必需 |
|---|---|---|
| localpath | 指定要添加到 VSS 的本地文件。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| writable | true|false |
否 |
| recursive | true|false |
否 |
| comment | 要用于签入文件的注释。 | 否 |
| autoresponse | Y、 N或空。 指定如何回复 VSS 的问题。 |
否 |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程。 |
否;默认为 true |
将名为 build.00012.zip 的文件添加到项目当前工作目录(参见 vsscp)。
<vssadd localpath="D:\build\build.00012.zip"
comment="Added by automatic build"/>
执行 CP(更改项目)命令到 Microsoft Visual SourceSafe 的任务。
此任务通常在 VssAdd 之前使用,以设置目标项目
| 属性 | 值 | 必需 |
|---|---|---|
| vsspath | SourceSafe 路径,指定要使其成为当前项目的项目。 | 是 |
| login | username[,password]- 获取 VSS 访问权限所需的用户名和密码。 请注意,您可能需要同时指定两者(如果您有密码) - 如果您省略密码,Ant/VSS 会挂起,并且 VSS 不会接受没有密码的登录。 |
否 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| serverPath | srcsafe.ini 所在的目录。 | 否 |
| failonerror | 如果 ss.exe 以返回代码 100退出,则停止构建过程。 |
否;默认为 true |
将当前 VSS 项目设置为 $/Projects/ant。
<vsscp vsspath="$/Projects/ant"/>
执行 CREATE 命令到 Microsoft Visual SourceSafe 的任务。
在 VSS 中创建新项目。
| 属性 | 值 | 必需 |
|---|---|---|
| login | username,password |
否 |
| vsspath | 要创建的项目的 SourceSafe 路径 | 是 |
| ssdir | ss.exe 所在的目录。 | 否;默认情况下,预计在 PATH 中 |
| quiet | 抑制输出 | 否;默认为 off |
| failOnError | 如果创建项目时出错,则失败。 | 否;默认为 true |
| autoresponse | 要回复的内容(设置 -I 选项)。 默认情况下,使用 -I-;Y或 N的值将附加到此。 |
否 |
| comment | 此标签要使用的注释。 空或 -表示没有注释。 |
否 |
创建 VSS 项目 $/existingProject/newProject。
<vsscreate vsspath="$/existingProject/newProject"/>