我的客户正在从 Source Safe 迁移到 Clearcase。他们需要列出 Source Safe 数据库中的所有链接文件,以便可以将链接转移到 Clearcase,因为显然所有源都必须在第 1 天检查到 Clearcase,从而丢失任何现有链接。
是否有任何工具可以创建此报告,或者甚至可以完全导入 clearcase ?
我的计划是编写一个powershell脚本来递归SS文件夹的Source Safe,使用COM发现链接。
谢谢。
我的客户正在从 Source Safe 迁移到 Clearcase。他们需要列出 Source Safe 数据库中的所有链接文件,以便可以将链接转移到 Clearcase,因为显然所有源都必须在第 1 天检查到 Clearcase,从而丢失任何现有链接。
是否有任何工具可以创建此报告,或者甚至可以完全导入 clearcase ?
我的计划是编写一个powershell脚本来递归SS文件夹的Source Safe,使用COM发现链接。
谢谢。
正如 VonC 所提到的,从 VSS 到 ClearCase 的导入确实很糟糕,因为:
我自己在 ClearCase UCM 上工作,我们做出了和你一样的决定(在我 10 年的 CM 经验中,这始终是最好的决定):留下历史以供参考,最多导入几个版本手动操作(例如当前开发中;当前测试中;当前实时)。
我们解决股票问题的方法如下:
与源树隔离的“共享”,将独立于其他源导入
从头开始导入的其他来源(没有历史记录和共享)。假设在一个名为 MAIN_SRC 的组件中
从头开始导入的共享(没有历史记录)。假设在一个名为 SHARE_SRC 的组件中
创建了一个包含两个组件的项目: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 认为源是它们曾经所在的位置。
干杯,
托马斯
正如我在这个问题中提到的,clearexport_ssafe应该用于从 Source Safe 导入到 ClearCase。
但是,该工具的文档明确提到:
分享。Rational ClearCase 中没有与 Visual SourceSafe 共享等效的特性。clearexport_ssafe 在转换过程中不会将共享保留为硬链接。相反,共享成为单独的元素
因此,您的脚本需要列出所有链接,并在它们的初始目录和新创建的单独元素之间创建软链接。
但我相信您可能希望为目标 ClearCase 存储库考虑另一个组织,其中不再直接使用所有共享文件,如this answer所示(在本例中为 SVN 存储库):
我们已经消除了所有链接文件。之前链接的所有类文件都已放入类库中,这些类库作为解决方案中的共享项目引用共享给我们的其他项目。所以本质上你共享库,而不是类文件。
有一些调整过程来适应这一点,但从那时起我就没有错过任何链接。通过像这样设置代码,它确实促进了更好的设计实践。
我主要使用 UCM 工作,所有这些“共享”都是UCM 组件的自然候选者,使用 UCM 基线来引用它们的不同版本,然后您可以制作自己的“配置”(标签列表)以选择不同的您需要的组件,使它们可以轻松地跨项目重用。