列出所有源安全链接文件的工具

时间:2009-05-27 20:26:40

标签: powershell visual-sourcesafe clearcase

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

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

我的计划是编写一个powershell脚本来使用COM来恢复源安全的SS文件夹,结果链接。

感谢。

2 个答案:

答案 0 :(得分:2)

正如我在this question中提到的,clearexport_ssafe应该用于从Source Safe导入到ClearCase。

然而,documentation for that tool explicitly mentions

  

股份。 Rational ClearCase中没有与Visual SourceSafe共享等效的功能。 clearexport_ssafe在转换期间不会将共享保留为硬链接。相反,股票成为独立的元素

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

但我相信你可能想要考虑目标ClearCase存储库的另一个组织,其中所有共享文件不再直接使用,如illustrated by this answer(对于此实例中的SVN存储库):

  

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

     

有一些调整过程习惯了这个,但从那以后我没有错过链接。通过让您的代码设置为这样,它确实可以促进更好的设计实践。

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

答案 1 :(得分:2)

正如VonC所提到的,从VSS到ClearCase的导入确实非常恶劣:

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

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

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

  1. 与源树隔离的“份额”,与其他来源无关地进口

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

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

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

  7. 现在,问题没有解决,因为当您的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认为来源就像过去一样。

    干杯,

    托马斯