2

我的客户正在从 Source Safe 迁移到 Clearcase。他们需要列出 Source Safe 数据库中的所有链接文件,以便可以将链接转移到 Clearcase,因为显然所有源都必须在第 1 天检查到 Clearcase,从而丢失任何现有链接。

是否有任何工具可以创建此报告,或者甚至可以完全导入 clearcase ?

我的计划是编写一个powershell脚本来递归SS文件夹的Source Safe,使用COM发现链接。

谢谢。

4

2 回答 2

2

正如 VonC 所提到的,从 VSS 到 ClearCase 的导入确实很糟糕,因为:

  • 导出/导入需要永远完成,所以我们为它打开了一个针对 IBM 的 PMR(这没有帮助,顺便说一句)
  • Source Safe 共享被转换为文件,这会在整个地方创建重复项(恐怖!)。

我自己在 ClearCase UCM 上工作,我们做出了和你一样的决定(在我 10 年的 CM 经验中,这始终是最好的决定):留下历史以供参考,最多导入几个版本手动操作(例如当前开发中;当前测试中;当前实时)。

我们解决股票问题的方法如下:

  1. 与源树隔离的“共享”,将独立于其他源导入

  2. 从头开始导入的其他来源(没有历史记录和共享)。假设在一个名为 MAIN_SRC 的组件中

  3. 从头开始导入的共享(没有历史记录)。假设在一个名为 SHARE_SRC 的组件中

  4. 创建了一个包含两个组件的项目:MAIN___SRC 和 SHARE_SRC。

现在,问题没有解决,因为您的共享与的主要源代码无关,当您的 IDE(例如 Visual Studio)完全期望它们位于与之前相同的文件夹中时(即在 Visual 中,如果您不这样做,您的所有项目都会出错'不解决这个问题,所有文件都需要从Visual本身重新链接,等等......很多工作)。

这可以通过使用 ClearCase VOB 符号链接来解决:

假设在 MAIN___SRC 中,您需要在 SHARE_SRC 中使用名为 myShared 的文件。

从需要使用 myShared 文件的文件夹中,使用命令行界面并运行:

cleartool ln -s ..\..\SHARE_SRC\(myPath)\mySharedFile . 

您需要尽可能多的 ..\.. 才能上到 ClearCase 中的组件文件夹级别,然后沿着 SHARE_SRC 组件文件夹中的路径 (myPath) 下移。

请记住,ClearCase 路径由以下部分组成:

M:\View_name\VOB_name\Component_name\Your first level of files and folders

(VOB_name\Component_name 是组件的“根”,如果您有单个组件 VOB,在这种情况下,VOB_name\Component_name 只是 VOB_name)

最简单的方法是对所有需要创建的 VOB 符号链接进行映射,并将所有必要的“cleartool ln -s”命令行放在一个脚本中运行一次。

在那之后,你应该没问题,并且你的 IDE 认为源是它们曾经所在的位置。

干杯,

托马斯

于 2009-05-29T15:44:43.853 回答
2

正如我在这个问题中提到的,clearexport_ssafe应该用于从 Source Safe 导入到 ClearCase。

但是,该工具的文档明确提到

分享。Rational ClearCase 中没有与 Visual SourceSafe 共享等效的特性。clearexport_ssafe 在转换过程中不会将共享保留为硬链接。相反,共享成为单独的元素

因此,您的脚本需要列出所有链接,并在它们的初始目录和新创建的单独元素之间创建软链接。

但我相信您可能希望为目标 ClearCase 存储库考虑另一个组织,其中不再直接使用所有共享文件,如this answer所示(在本例中为 SVN 存储库):

我们已经消除了所有链接文件。之前链接的所有类文件都已放入类库中,这些类库作为解决方案中的共享项目引用共享给我们的其他项目。所以本质上你共享库,而不是类文件。

有一些调整过程来适应这一点,但从那时起我就没有错过任何链接。通过像这样设置代码,它确实促进了更好的设计实践。

主要使用 UCM 工作,所有这些“共享”都是UCM 组件的自然候选者,使用 UCM 基线来引用它们的不同版本,然后您可以制作自己的“配置”(标签列表)以选择不同的您需要的组件,使它们可以轻松地跨项目重用。

于 2009-05-27T20:58:48.233 回答