本文描述了将 Microsoft® Visual SourceSafe®(VSS)储存库中的数据,转化为
IBM® Rational® ClearCase® 储存库中数据的过程。它还向您展示了怎样得到统一变更管理(UCM)格式的数据,这样您就可以处理活动,流以及项目结构了。
本文描述了怎样将 Microsoft® Visual SourceSafe®(VSS)储存库中的数据(源代码,文件,以及其他),转化为
IBM® Rational® ClearCase® 储存库中的数据,并转化为 UCM
格式,以处理活动,流和项目结构。因为您不能直接将数据导入到 Unified Change Management
(UCM)的版本对象库(VOB)结构,所以您必须完成三步的转化以得到 UCM 格式的数据:
- 从 VSS 储存库中导出数据。
- 将数据导入到 Base ClearCase 格式的 ClearCase 储存库中。
- 将 Base ClearCase 目录和标签转化为 UCM 组件的目录和基线。
但是,在您执行这些步骤之前,它可以帮助理解数据是怎样保存在 VSS 储存库中的。您还必须在开始从 VSS
中导出数据之前,就决定需要作出什么选择。
本文举了一个 VSS 中已存在项目结构的范例,这个例子是关于转化到实际项目中 ClearCase 和
UCM 格式的数据的。
数据保存在单个目录树下的 VSS 中,所有的项目路径都以前斜符(/)开始。因此,VSS 中的典型项目结构如图
1 所示。Rational_Sample_data 是产品名,它具有不同的目录,它同样包含了以词“Branch. ”开始的目录。这些目录仅仅是已存在主线目录的分支版本。
图 1. 典型的项目结构
为了生动描述,目录 Source 就是主线开发开始的地方,Branch_Source
是源目录的分支发展。(如果您熟悉 ClearCase 视角,不是每一个分支您都有单独的物理目录的,这可能会造成混乱)。
目录 Source 与目录 Branch_Source
可能会也可能不会包含不同的数据,这取决于开发行所做的工作。但是,目录 Branch_Source
会一直存在于主线开发的一些版本中。
在这些情况下,Branch_Source 创建至 Source
目录下的 Version 173,如图 2 所示。
图 2. 使用分支开发的范例
您可以使用这种类型的分支,以修补产品公布版本的一些漏洞,同时协同工作以开发软件的下一个版本。在图 2
中,标签 Build.20 用于目录 Source
的 Version 173,并创建一个分支以修补 Build.20 中的漏洞。
在您从 VSS 中导出数据之前,您需要依靠您 在 UCM 中最终想要得到的组件(目录)。如果目录结构需要与
VSS 中的保持一致的话,那么就将完整的 Source 目录或者
Source 目录内的每一个目录宣布为 UCM 组件 。
在 UCM 中有一个合适的组件结构有着显然的优势。UCM 用户手动描述这些优势。
在本例中,您宣布 Source 目录为您的 UCM 组件(在本文的下一段落中将会向您展示怎样做到这一点)。在这一点上,不要担心
Source 目录的分支复制版本,因为您还会在本文的后面学到怎样去导入它。
在您决定 UCM 中的目录结构之后,您可以继续从 VSS 中导出数据。这个可以导入到 ClearCase
格式。
执行这些步骤以从 VSS 中导出数据:
- 打开一个命令行并确保
PATH 变量包含了您的 VSS 安装目录的路径。
- 使用合适的认证手段,将 VSS 储存库映射到网络驱动器上。
- 设置以下的环境变量:
set SSDIR=V:\ {mapped
drive of the VSS repository}
set TMP=c:\temp
set SSUSER=<valid user name who has
access to vss repository>
set SSPWD = <VSS password of above
user-id>
- 设置 VSS 项目目录为该文件夹,它们都导出到:
ss cp “$/Article/DemoArticle1.0/Source"
- 使用以下的命令来验证当前的项目:
ss cp
- 通过使用以下命令来将 VSS 目录导出到一个文本文件中:
clearexport_ssafe –r –o c:\datafiles\vss_export_Source.txt
|
命令 clearexport_ssafe 也有特定可用的开关,在这里您可以根据需要使用它:
–p <date-time>
:过程只会记录那些变更,因为 date-time 只会指定为新的元数据。
–s <date-time>
:只处理那些变更后的版本,因为 date-time
已经被指定。
–l <date-time>
:只处理那些重要的版本,但是因为指定的时间所以它包含了创建的版本。一个版本只有在满足以下条件才会重要:
- 为了让 VSS 保持与 ClearCase 相同的分支结构(如图 1 所示),使用下面的命令:
Clearexport_ssafe –r –s <date-time> -b Branch_Source -v Build.20
-o c:\datafiles\vssexport_branch.
|
就是:
Branch_Source 是 ClearCase 中的 Target
分支。
Build.20 就是 Label ,Branch_Source
就是从这里得来的。
<date-time> 就是 Branch_Source
在 VSS 中创建的 Time ,这样它只会处理分支上需要的版本。
- 如果没有错误,在成功完成
export 命令之后,输出文件就会有导出文件了。
在这一步中,您需要在第一步创建的输出数据文件的帮助之下,导出数据到 ClearCase 储存库中。
注意:如果您没有使用 UCM 作为您的目标 ClearCase 创建时,那么这也许会是您的转变过程的最后一步。但是,如果这种导入是
UCM 创建时,那么您就必须完成第 3 步。而且,clearimport 命令不能用于 UCM 视图环境下,这样导入只能在
Base Clearcase 视图环境下运行。
现在您可以开始导入过程了:
- 创建 Base ClearCase VOB
CC_Migration_VOB (如果它还没有创建的话。)
- 创建 Base ClearCase 视图
CC_Migration_View (如果它还没有创建的话。)
- 打开命令行。
- 设置在第 2 步中创建的视图环境:
cleartool startview ClearCase_Migration_View
net use z:\ \\view\ClearCase_Migration_View
|
- 浏览 VOB 直到您找到目标位置,然后执行以下的命令:
cd ClearCase_Migration_VOB clearimport c:\datafiles\vssexport_Source
|
- 导入输出应该与列表 1 中的相类似。
列表 1. clearimport 命令的范例输出
Validating label types.
Validating directories and symbolic links.
Validating elements.
Creating element “.\bugfix/add.sql".
version “1"
version “2"
version “3"
Creating element “.\bugfix/mod_empl.c".
version “1"
version “2"
version “3"
version “4"
.
.
.
Closing directories.
|
在您完成这个导入步骤之后,您的数据应该在您在步骤 1 创建的 VOB 中(CC_Migration_VOB ),您可以通过使用有效的
ClearCase 视图,来访问后面的部分。(如果您导入到分支之后,编辑视图的 config-spec )。
- (可选的)您也可以标记导入的版本,以为源代码的进一步发展识别 Base 版本。为了使用以上的视图来向所有的导入源代码应用标签,执行以下的命令:
cleartool mklbtype –c “Identify imported versions from VSS" VSS_to_CC_Migrated
|
- 使用 Apply Label 向导来向所有的导入元素应用“VSS_to_CC_Migrated”标签。重点:确认您锁定了标签以防止将标签移到其他的版本。
如果您对为配置管理创建 UCM 使用模型,继续学习接下来的章节。
UCM 引入了两种 VOBs 的概念:Project VOB 和 Component VOB。
- 创建 UCM Project VOB。(遵循 ClearCase 用户手册中的指导创建一个 Project
VOB)。
- 接下来,根据 UCM 来使用上一个章节中的导入数据。
- 导入 VOB 目录(在第 2 步创建以作为导入的结果)以作为一个 UCM 组件。右键点击
Components,并选择 Import > VOB Directory as
Component,如图 3 所示。
图 3. 导入 VOB 目录
- 按照以下方式来指定组件细节(同样见于图 4):
- 视图:test_view_vivek
- VOB:BASE_CC_VOB
- 根目录:Calculator
- 组件名字:Calculator
图 4. “导入 VOB Directory 作为 Component”视图
在本例中,test_view_vivek 是 Base ClearCase
视图,通过它组件目录就可见了。Calculator 就是组件目录。
- 为在上面第 4 步中创建的组件,导入在第 2 步中创建的标签以作为 UCM 基线。右键点击
Component 并选择 Import > Label as Baseline,如图
5 所示。
图 5. 导入标签
- 对于给定的新基线,选择使用您想要导入标签的组件,如图 6 所示。
图 6. “导入标签 – Step 1 of 2”视图
- 指定您在步骤 2 中创建的标签,它就是必须转变为 UCM 基线的 Base ClearCase
标签,如图 7 所示。
图 7. 导入标签 – Step 2 of 2
- 在前面创建的项目 VOB 中创建一个名为
Migration_PVOB
的 UCM 项目(您可以在 ClearCase 用户手册中找到创建 UCM 项目的步骤)。项目的集成流可以命名为
Migration_Project_Int 。
- 开始时,点击 Migration_PVOB 并选择 New > Project,如图
8 所示。
图 8. 创建一个新项目
- 添加组件基线(就是您刚刚导入的),如图 9 所示。
图 9. 从列表中选择基线,并点击 Add
- 为名为
Migration_Project 的项目创建集成视图,它指向名为
Migration_Project_Int 的 Integration 流。
如果您从 ClearCase 开始,那么集成流会从基线创建(作为导入标签的结果创建),如图 10 所示。
图 10. “ClearCase Version Tree Browser”视图
现在您就可以开始使用带有
Rational ClearCase 转化的源代码。
您可以使用文中的信息,来帮助策划从 VSS 到 ClearCase 的转化(可能从 ClearCase
到 UCM)。在实际的转化发生之前,清除的定义什么将会从 VSS 导出,以什么样的方式(这就是说,VSS
的哪一个基线和代码会整合到 ClearCase,以及您将会使用什么流结构和组件结构)。
学习
获得产品和技术
讨论
|