第 7 章 为项目指定版本控制系统

首先选择“VCS Adaptors”控制面板标签

点击该面板右上角"New VCS Adaptor"图标。

选择版本控制系统

7.1. 设置AccuRev连接信息

以下地址可以下载AccuRev: http://www.accurev.com/download/index.htm. 下面是该适配器的属性列表:

AccuRev port(AccuRev端口号)

AccuRev 端口号的格式为<servername>:<port>,其中<servername> 和 <port> 应该用实际的AccuRev的服务器名和端口号代替。 该属性是可选的,该属性的值会覆盖acclient.cnf值。

注意

AccuRev的默认配置信息定义在acclient.cnf 和wspaces 文件里面. 详情请参考AccuRev 用户手册。

Path for accurev executable(accurev的执行路径)

在该目录下保存accurev的可执行文件 如果如果系统目录下没有包含accurev的可执行文件,那么应该放在 在该目录下。

Quiet period(等待周期)

从VCS check out代码来进行创建之前的等待周期(也就是多长时间没有用户check in),以秒为单位。 这是为了避免在其他人正在做check in的过程中check out代码。 该属性为可选,如果该属性没有设置,那么在check out代码出来创建之前不会有等待周期。

7.2. 设置Clearcase基本连接信息

首先在用于创建的机器上必须安装了Clearcase客户端。 同样您还应该保证启动您的应用服务器或者servlet容器的帐号能够访问Clearcase服务器,而且能做视图快照。 下面是该连接的属性列表。

Clearcase view stgloc name(Clearcase view stgloc名称)

Clearcase 服务器端视图存储的位置,该属性用于创建当前项目的Clearcase视图的stgloc选项值。 该属性和"Explicit path for view storage"只指定一个即可

Explicit path for view storage(明确的视图存储路径)

只有"Clearcase view stgloc name"属性没有指定的时候该属性才需要。 如果指定了,那么创建当前项目的Clearcase视图的时候,该值将作为-vws选项值代替-stgloc选项

注意

在Windows平台上该值应该是可写的UNC路径。

Config spec(配置说明)

Config spec 用于创建Clearcase快照视图

Modification detection config(修改检测配置)

如果在上述的Config spec下指定要获取某些分支下的最新版本,这个时候该属性有效。Luntbuild用 该属性来决定自上一次创建后资料库是否发生了改变。该属性包括了多种条目,每个条目的格式为 "<path>[:<branch>]" 其中<path>是VOB下的路径,该值对于上述的config spec是可见的。对于该目录下的任何子目录, Luntbuild会检查clearcase服务器端内容是否发生了变化。 如果<branch>指定了,那么Luntbuild将会检查指定的分支里的内容是否发生了变化。 多个条目可以通过";"符号或者多行来区分。

Extra options when creating snapshot view(创建快照视图的扩展选项)

当您使用Luntbuild为当前项目创建有关的Clearcase快照视图的时候,可以执行mkview sub命令的命令行选项。 可以指定的命令行选项包括-tmode, -ptime, and -cachesize,例如您可以指定"-tmode insert_cr",这样就使用 Windows的文本行终结符。

Path for cleartool executable(cleartool执行的路径)

cleartool可执行文件所在的路径。如果在系统的路径下找不到cleartool的可执行文件,就会在 这里设置的目录下找。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.3. Setting Cvs connection information.(设置Cvs连接信息)

如果您使用的是Windows平台,首先在您的平台上安装相应的CVS客户端,可以从下面的网站下载相应的安装包 http://www.cvshome.org 或者 http://www.cvsnt.org

注意

请保持构建服务器和CVS服务器在时间上的同步,这样构建服务器才能更精确的检测到cvs服务器上代码库的变化。 还有就是记录在cvs变更日志里面的时间格式为UTC格式,而不是本地的时间格式。

下面是cvs连接的一些属性

Cvs root(CVS root)

例如:pserver:administrator@localhost:d:/cvs_repository。 如果您的连接方式是ssh,请设置:ext:协议,并且要设置好ssh相应的环境,这些设置都在都在Luntbuild外进行。 详情参考cvs用户指南。

Cvs password(Cvs口令)

使用pserver协议来连接的CVS口令

Is cygwin cvs?(是否使用的cygwin的cvs)

该属性指要使用的cvs是否是cygwin下的cvs? 可选的值为"yes"或"no",默认值为"no"。

Disable "-S" option for log command? (禁止log命令的"-S"选项)

该选项用来设置log命令的"-S"选项是否禁止? 可选的值为"yes"或"no",默认值为"no"。 在log命令中使用-S选项可以加速对cvs代码库中发生变化的检测, 不过早期的cvs并不支持该选项。如果是早期的cvs版本,请输入"yes"来禁止该选项。

Disable history command?(禁止history命令)

该属性用来设置在检测CVS代码库的变化的时候是否禁止history命令。 可选的值为"yes"或"no",默认值为"no"。 和log命令一起使用history命令可以加速对cvs代码库中发生变化的检测, 但是,有些cvs代码库并没有保存commit的历史信息,这种情况下,应该使用"yes"来禁止该命令。

Path for cvs executable(CVS执行的路径)

cvs可执行文件所在的路径。如果在系统路径下找不到cvs的可执行文件,就会在 这里设置的目录下找。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.4. Setting File system connection information.(设置文件系统的连接信息)

Source directory(源目录)

该属性为可选属性。如果指定了,那么会以文件的修改时间为检测对象来检测源目录内容的变化。 所有检测到的已修改的文件将会复制到项目工作目录下,并在此基础上进行构建。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.5. Setting Perforce connection information.(设置Perforce连接信息)

首先应该在构建的机器上安装Perforce客户端。关于许可证信息请联系http://www.perforce.com。 下面是该连接的属性列表:

Perforce port(Perforce端口)

Perfoce端口格式<port>, 或者 <servername>:<port>, 其中<servername> 和 <port> 将被实际的Perforce服务器名和端口代替。

User name(用户名)

在此指定访问Perfoce服务器的用户名。该用户应该有创建和修改客户端描述符(client specifications)的权限, 还应该有检出代码以及给代码打上标签的权限。

Password(口令)

Perforce用户对应的口令。如果Perforce没有使用基于口令的安全机制,那么这里口令可以为空。

Line end(行结束符)

设置客户文本文件的行结束符。目前可设置的值如下:

local: use mode native to the client
unix: UNIX style
mac: Macintosh style
win: Windows style
share: writes UNIX style but reads UNIX, Mac or Windows style

该属性为可选属性。如果没有指定,那么默认值为"local"

Path for p4 executable(p4执行的路径)

P4可执行文件所在的路径。如果在系统的路径下找不到cvs的可执行文件,就会在 这里设置的目录下找。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.6. Setting Subversion connection information.(设置Subversion的连接信息)

首先请在您的构建服务器上安装好Subversion的客户端。 subversion的下载地址为http://subversion.tigris.org.

注意

请保持构建服务器和Subversion服务器在时间上的同步,这样构建服务器才能更精确的检测到Subversion服务器上代码库的变化。

下面是Subversion连接的属性列表:

Repository url base(代码库的“根”url)

Subversion的“根”url,例如:"svn://buildmachine.foobar.com/"或者"file:///c:/svn_repository" 或者"svn://buildmachine.foobar.com/myproject/othersubdirectory",等等。 其他的例如标签的目录,分支的目录,模块等等都是相对于该“根”url的。

注意

如果使用https的方式访问subversion服务器,那么您需要配置Luntbuild的构建机器, 让它事先永久接受subversion服务器颁发的安全证书(具体可以参见subversion的用户说明)。

Directory for trunk(trunk目录)

指定在上述根url下用于存放主分支代码(trunk)的目录。该目录是根url的相对目录。 如果在根url下没有定义任何trunk目录,那么该属性的值为空值。

Directory for branches(分支目录)

指定在上述根url下用于存放分支代码的目录。该目录是根url的相对目录。 如果不设置该属性,那么Luntbuild将采用默认值,即"branches"。

Directory for tags(标签目录)

指定在上述根url下用于存放标签的目录。该目录是根url的相对目录。 如果不设置该属性,那么Luntbuild将采用默认值,即"tags"。

Username(用户名)

登录Subversion的用户名。

Password(口令)

登录Subversion的用户的口令。

Path for svn executable(svn执行的目录)

svn可执行文件所在的路径。如果在系统的路径下找不到svn的可执行文件,就会在 这里设置的目录下找。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.7. Setting Clearcase UCM connection information.(设置Clearcase UCM的连接信息)

首先需要在构建服务器上安装Clearcase客户端。 同时还要确保运行应用服务器和servlet容器的帐户能够访问Clearcase服务器,并且能够创建快照视图。 下面是该连接的一些属性:

Clearcase view stgloc name(Clearcase视图存储位置的名字)

在此指定Clearcase视图存储位置的名字,其值将作为创建Clearcase视图的stgloc选项的值。

Project VOB tag(项目VOB标签)

在此指定项目vob的标签,例如\pvob1

Explicit path for view storage(视图存储位置的路径)

如果"Clearcase view stgloc name" 属性的值为空,那么本属性的值就必须设置。 如果指定了本属性的值,其值作为创建Clearcase视图的-vws选项的值,并且会代替原来使用的-stgloc选项。

注意

This value should be a writable UNC path on Windows platform.

UCM stream name(UCM流)

在此指定UCM流的名字。

What to build(构建对象)

指定在UCM流内部要构建的基线。如果要指定多个基线,那么中间用空格分开。 下面的值具有特殊的意义:

<latest>: 基于每个组件最新的代码进行构建。
<latest baselines>: 基于每个组件最新的基线进行构建。
<recommended baselines>: 基于推荐的基线进行构建。
<foundation baselines>: 基于所有的最基础的基线进行构建。

Modification detection config(检测变化的配置)

当"What to build"属性的值为"latest"时,本属性的值有效。 Luntbuild用该属性来决定自上一次创建后资料库是否发生了改变。该属性包括了多种条目,每个条目的格式为 "<path>[:<branch>]" 其中<path>是VOB下的路径,该值对于上述的config spec是可见的。对于该目录下的任何子目录, Luntbuild会检查clearcase服务器端内容是否发生了变化。 如果<branch>指定了,那么Luntbuild将会检查指定的分支里的内容是否发生了变化。 多个条目可以通过";"符号或者多行来区分。

Extra options when creating snapshot view(创建快照视图的扩展选项)

在通过Luntbuild来创建当前项目有关的clearcase的快照视图的时候,您可以有选择性的指定mkview sub命令的扩展选项。 目前可以指定选项限定为-tmode, -ptime, 和 -cachesize。例如,您可以指定"-tmode insert_cr",这样可以使用Windows 的行结束文本模式。

Path for cleartool executable(clearcase工具执行的路径)

在此指定clearcase工具可执行文件所在路径,如果这些可执行文件不在系统路径下,就应该在此指定其所在的目录。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.8. Setting Visual Sourcesafe connection information.(设置VSS连接信息)

首先在构建服务器上安装VSS软件,下载地址http://download.microsoft.com。 下面是VSS连接的属性:

注意

为了VSS的history命令的准确性,所有开发机,构建服务器的时间设置要保持同步。

Sourcesafe path(Sourcesafe路径)

该目录是srcsafe.ini文件所在目录。例如:\\machine1\directory1 这个路径名要么用主机名要么用主机的ip地址,而且要确保运行应用服务器或者servlet容器的帐号事先已经登录 到这台机器上,否则在构建时Luntbuild会汇报一个“No VSS database found”的错误。

Username(用户名)

登录该VSS的用户名。

Password(口令)

上面指定的用户的口令。

Datetime format(日期时间格式)

指定VSS的history命令的日期时间格式。该属性为可选属性,如果该属性的值为空,那么Luntbuild将使用 默认值"M/dd/yy;h:mm:ssa"。 默认值只适合使用US的英文操作系统。 对于其他的使用英语的国家,例如英国,澳大利亚,加拿大,VSS使用的时间格式为(假设VSS的本地语言已经设置为相应的值):

		'd/M/yy;H:mm'
        

如果Luntbuild运行的操作系统为非英文的操作系统,可以通过以下方法决定使用的日期时间格式:

打开安装在您的构建服务器上的VSS,选择一个现有的VSS数据库,然后查看里面的项目和文件。 在文件列表框里面有几栏,其中一栏是"Date-Time"。可以使用这个位置相应的"datetime format"(日期时间格式)。 例如,如果其中一个的值为 "04-07-18 20:19",那么相应的"datetime format"(日期时间格式)为 "yy-MM-dd;HH:mm" 注意在日期和时间之间的semicolon(分号)一定要指定。 在这里鼓励大家将该属性设置为"yy-MM-dd;HH:mm:ss",这样可以提高精确度。 例如,如果VSS里面的日期时间为"7/18/04 8:19p",那么相应的"datetime format"(日期时间格式) 为"M/dd/yy;h:mma"。 这个时候如果设置为 "M/dd/yy;h:mm:ssa",那么可以增加准确性。

下面是从JDK文档中节选的部分格式化字符的信息:

表 7.1. Date/Time format characters(日期时间格式化字符)

字符解释例子
y1996 ; 96
M(一年中的)月July ; Jul ; 07
d(一个月中的)日10
aAm/pm(上下午)标志p
H(一天中的)小时,范围(0-23)0
h(上午或下午的)小时,范围(1-12)12
m(小时中的)分钟30
s(分钟中的)秒55

详情参考 http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

Path for ss.exe(ss.exe文件所在路径)

在此指定ss.exe文件所在的路径,如果ss.exe文件不在系统路径下面,Luntbuild就会使用这个属性的值作为寻找该ss.exe 文件的目录。

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.9. Setting StarTeam connection information.(设置StarTeam连接参数)

首先在Windows平台上完全安装StarTeam SDK的运行时套件(把运行时dll安装在Windows系统目录下)。 通常这是StarTeam客户端安装程序的一部分。 许可信息请参考http://www.borland.com. 下面是该连接的一些属性:

Project location(项目位置)

StarTeam项目的位置,格式<servername>:<portnum>/<projectname>, 其中<servername>是StarTeam服务器名字,<portnum>是服务器使用的端口号,默认值49201。 <projectname>是运行在StarTeam服务器上的StarTeam的项目名。

User(用户)

登录StarTeam服务器的用户名。

Password(口令)

登录StarTeam服务器的口令。

Convert EOL?

该属性可选的值如下:

all: 所有ASCII码文件将其行结束符调整为和检出的客户机的行结束符一致。

no: 检出的文件的行结束符以服务器为准。

该属性为可选属性。如果没有指定,默认值为yes

Quiet period(等待周期)

在Luntbuild准备从VCS检出代码前,需要确保最近一次检入操作距离现在的最短时间(单位为秒),在这段时间不能有新的检入操作。 这样是为了避免有其他用户正在做检入的过程中Luntbuild做检出的操作,从而导致捡出代码的不一致性。 该属性为可选属性,如果为空,Luntbuild就会立刻检出代码,并执行构建,而不会检测当前VCS中是否有正在进行的检入操作。

7.10. Using multiple Version Control Adaptors.(同时使用多个VCS连接)

对于一个项目可以定义多个VCS连接。 当该项目的构建开始运行的时候,所有有关的VCS代码库的相关代码检出到项目的工作目录。 例如,某个项目,客户端模块是在Cvs代码库里面,服务器端的模块是在VSS代码库里面。 这种多连接的情况还适合于那种使用同一种VCS,当时不同的模块存放在不同的代码库里面的情况。 例如,某个项目,客户端模块在某一个Cvs代码库中,而服务器端模块在另一个Cvs代码库中。