Compilation 在ClearCase UCM的快照视图上编译代码

Compilation 在ClearCase UCM的快照视图上编译代码,compilation,clearcase,clearcase-ucm,Compilation,Clearcase,Clearcase Ucm,在ClearCase UCM中,我们有大约27000个文件的庞大代码库。我们的构建过程如下: 将文件从流的动态视图复制到本地计算机(例如目录D:\ABC) 开始编译 下次编译时,我们将清理D:\ABC,并重复上述过程。复印大约需要50分钟 与快照视图相比,我们更喜欢动态视图的原因是: 我们始终可以确保使用的是最新的代码 在编译过程中,我们生成了大量代码并修改了一些现有的代码。这可能会使快照视图变脏 我们省去了清理快照视图、重定其基址等麻烦 快照视图的问题有: 我们需要清理为上一次构建生成的代码(

在ClearCase UCM中,我们有大约27000个文件的庞大代码库。我们的构建过程如下:

  • 将文件从流的动态视图复制到本地计算机(例如目录
    D:\ABC
  • 开始编译
  • 下次编译时,我们将清理
    D:\ABC
    ,并重复上述过程。复印大约需要50分钟

    与快照视图相比,我们更喜欢动态视图的原因是:

  • 我们始终可以确保使用的是最新的代码
  • 在编译过程中,我们生成了大量代码并修改了一些现有的代码。这可能会使快照视图变脏
  • 我们省去了清理快照视图、重定其基址等麻烦
  • 快照视图的问题有:

  • 我们需要清理为上一次构建生成的代码(这些代码显示为view private)
  • 我们需要撤销劫持(我们删除一些文件的只读,因为它们必须在编译时修改)
  • 我们必须清理Visual Studio在编译期间创建的输出目录和其中的文件
  • 每次打算编译快照时,我们都需要重新设置快照视图的基础
  • 我们不信任快照视图的清洁度
  • 我的问题是:

  • 我们从动态视图复制文件的做法是否正确
  • 我想知道是否有某种方法可以使用快照视图,并且仍然确保它是干净的
  • 我们是否可以采用任何其他选项或最佳实践来改进我们的流程
  • 任何帮助都将不胜感激。

    1/否:

    • 从动态视图复制比直接使用快照视图要长得多,而快照视图只需更新(以捕获最新代码)
    • 另外,在复制过程中,可以更新文件(签入新版本),然后由您的进程复制(因为动态视图将…动态地拾取所述新版本)。简而言之:你不知道你在复制什么
    • 快照视图的更新是一个增量过程。
      复制动态视图并非如此(它将复制所有内容,而不是仅下载增量)
    2/您需要确保删除任何被劫持的文件

    3/为了获得代码库的固定时间点,使用基线更安全。

    1/否:

    • 从动态视图复制比直接使用快照视图要长得多,而快照视图只需更新(以捕获最新代码)
    • 另外,在复制过程中,可以更新文件(签入新版本),然后由您的进程复制(因为动态视图将…动态地拾取所述新版本)。简而言之:你不知道你在复制什么
    • 快照视图的更新是一个增量过程。
      复制动态视图并非如此(它将复制所有内容,而不是仅下载增量)
    2/您需要确保删除任何被劫持的文件


    3/使用基线更安全,为了获得代码库的固定时间点

    我们在成功构建后创建基线。因此,按基线获取不是一种选择。而且,这个过程不是为开发人员准备的,而是持续集成的一部分。因此,我们需要在不依赖任何基线的情况下获取最新的源代码。VonC先生,在我们的过程中,我们在开始复制之前锁定流。因此,我们确信我们正在复制什么。只有在构建成功后,我们才能使用basline。因此,成功的构建是基线的先决条件。同样,这不是开发人员要遵循的构建过程。这是SCM团队的持续集成过程。@msreekant您也可以在复制之前建立基线。然后,无需锁定流。您需要在构建内容和代码之间建立清晰的链接,而不阻塞流。我们在成功构建之后创建基线。因此,按基线获取不是一种选择。而且,这个过程不是为开发人员准备的,而是持续集成的一部分。因此,我们需要在不依赖任何基线的情况下获取最新的源代码。VonC先生,在我们的过程中,我们在开始复制之前锁定流。因此,我们确信我们正在复制什么。只有在构建成功后,我们才能使用basline。因此,成功的构建是基线的先决条件。同样,这不是开发人员要遵循的构建过程。这是SCM团队的持续集成过程。@msreekant您也可以在复制之前建立基线。然后,无需锁定流。您需要在构建内容和代码之间建立清晰的链接,而不阻塞流。