Subversion/CollabNet集成
 

2009-08-28 来源:网络

 

此文档面向 CollabNet Enterprise Edition 的用户,这些用户已经相当熟悉 Subversion 的核心产品,并且已读过 Subversion 的主要书籍:使用 Subversion 进行版本控制。同时,此文档假定读者对 CollabNet 有一定程度的了解,即他们以前使用过 CVS 支持的 CollabNet 项目。

存储库布局

Subversion 为每个项目使用独立的 Subversion 存储库。项目最初创建时,会使用此 Subversion 书推荐的默认布局创建一个新的存储库。本质上,此存储库是一个单个的“项目根目录”(如在 Subversion 书中的“选择存储库布局”中所论述):

/branches/
    自述文件

/tags/
    自述文件

/trunk/
    www/
    index.html

自述文件

像任何 Subversion 存储库一样,建议项目将其主要的基本代码存储到 /trunk 中,然后使用 svn copy 命令将 /trunk 目录复制到 /branches 和 /tags 区域中,以创建分支和标签。

“Live”项目主页

/trunk/www 区域是一个特殊的目录,这和它在 CVS 支持的项目中一样。如果在项目设置中选择了“使用项目 index.html”选项,则此目录表示该项目的主要网站。向此区域提交任何内容都将导致项目首页的立即更新。

提交电子邮件

每当有内容提交到存储库时,都将发送电子邮件至 commits@yourproject.domain。此为一标准程序,使项目成员订阅此列表以增加他们对彼此活动的了解。

Subversion 客户端验证

注意:此部分的信息假设您的站点不要求 SSL 客户端认证。若您的站点使用 SSL 客户端证书,请参见使用客户端证书的 Subversion 客户端验证。

存储库的 URL 通过在项目的主 URL 后添加 /svn/projectname 构成。建议签出 /svn/projectname/trunk,而非存储库的根目录:

$ svn co http://project.domain/svn/project/trunk project

Authentication realm:<http://project.domain:80> CollabNet Subversion Repository
    Password for 'username':XXXXX

A project/
    A project/www
    A project/www/index.html
    Checked out revision 1.

Subversion 客户端必须提供有效的 CollabNet 用户名和密码,才能访问存储库。若您的 CollabNet 站点被配置为使用 https:// 而非 http://,则您也必须使用 https:// 才能访问 Subversion 存储库。此操作模式将通过连接的所有信息(包括您的密码)都进行了安全加密。

Subversion 客户端成功进行身份验证后,它会自动试图将凭据缓存到用户的运行时配置区域中。若要阻止这种磁盘上缓存(或只是要了解有关此功能的更多信息),请参考 Subversion 书中的“客户端凭据缓存”。

CollabNet 服务器授权

Subversion/CollabNet 集成的较好功能之一就是能够使用 CollabNet“角色”和“资源”以控制不同用户对存储库中特定路径的访问。若要概括了解 CollabNet 角色,请参见此文档。

正如使用 CVS 支持的项目一样,用户可能会在您的项目中申请大量的标准角色。下面的角色与版本控制的相关性最大:

观察员

对整个 Subversion 存储库具有只读访问权限。

内容开发人员

对 /trunk/www 仅具有读取/写入访问权限。无法读取或写入存储库的任何其它部分。

开发人员

对 Subversion 存储库具有完全读取/写入访问权限。

项目经理或项目所有者

与“开发人员”具有相同的版本控制权限,但对 CollabNet 其它部分具有额外特权。

此外,项目所有者可能会希望为其项目创建属于他们自己的特定资源和角色。由于 Subversion 在普通的文件系统空间中提供所有的分支和标签,因此能够选择性地限制对分支和标签的访问,这是超越 CVS 的一个极大的改进。

例如:您可以定义开发人员角色,这一角色对存储库中除 /tags 目录以外的所有部分都拥有写入访问权限;然后创建一个拥有特殊权限的特殊“发行经理”角色,以创建新标签。有无限种可能性。

存储库浏览

可以在项目的导航栏中使用“版本控制 - SCM”链接来浏览文件的历史记录。但是,Subversion 与 CVS 还不尽相同,因此,在浏览 Subversion 存储库时存在一些差异:

文件中不存在用于显示每行注释的选项。(但您可以从客户端运行“svn annotate”。)

检查文件修订列表时,没有用于显示相对于上一修订版本所更改的行数的“更改行数”字段。但是,存在一个显示每次修订大小的“文件大小”字段。

由于 Subversion 将分支和标签放置在普通的文件系统空间,因此不显示“分支”或“标签”字段,也不显示查看分支的下拉框。而是提供文本字段,用于区分任意两个存储库路径:您可以使用此字段在分支或标签目录中将一个文件和它的另一个版本进行比较。

与项目跟踪工具集成

若您的 Subversion 项目配置为使用项目跟踪工具 (PT) 而不是事件跟踪工具,则可使用更高程度的集成。项目所有者可以在“工具配置”页调整 Subversion 和 PT 之间的三种集成设置。

可将项目配置为允许 Subversion 提交将提交信息追加到 PT 工件。若提交日志信息提及特定的 PT 工件,则以下内容将被追加到该工件:

提交日志信息

已修改的文件路径

用于查看文件更改的 URL

为触发自动追加,提交日志信息中必须包含与项目跟踪工具工件标识符匹配的字符串:具体而言,该字符串必须具有 1 到 4 个字母,字母后跟有大量数字。任何匹配的字符串都被自动认为是可能会追加的“候选”项目跟踪工具工件。

除上述规则外,如果标识符的文本“事件”、“错误”或“工件”后跟有数字,且在项目中作为项目跟踪工具工件标识符存在,则此标识符将被标识为有效标识符。

还可以使用项目中正在使用的工件类型名,因此如果项目具有“缺陷”和“需求”工件类型,则该项目中的工件标识符可以称为“需求 1”或“缺陷 3”。如果在具有名为 SC1、SC2 和 SC3 的工件的特定项目中存在缺陷工件,但提交信息中带有文本“需求 3”,此标识符仍将被视作带超级链接的有效标识符。

也可将 SCM 配置为强制所有提交日志信息至少提及一个项目跟踪工具工件。如果提交信息未达到此要求,则将拒绝整个提交。也可将此功能进一步配置为要求提到的工件标识符由执行提交的人“拥有”。这两种设置都可以用于强制执行项目中特定的版本控制策略。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织