【问题标题】:Compiling code on snapshot views of ClearCase UCM在 ClearCase UCM 的快照视图上编译代码
【发布时间】:2012-03-26 21:18:53
【问题描述】:

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

  1. 将文件从流的动态视图复制到本地机器(比如目录D:\ABC
  2. 开始编译

下次编译时我们清理D:\ABC并重复上述过程。复制大约需要 50 分钟。

我们更喜欢动态视图而不是快照视图的原因是:

  1. 我们始终可以确保我们使用的是最新代码
  2. 我们在编译过程中生成了大量代码并修改了一些现有代码。这可能会使快照视图变脏。
  3. 我们免去了清理快照视图、重新定位它等的麻烦...

快照视图的问题是:

  1. 我们需要清理我们为上次构建生成的代码(这些代码显示为 view-private)
  2. 我们需要撤消劫持(我们删除了某些文件的只读文件,因为它们必须在编译时进行修改)
  3. 我们必须清理其中由 Visual Studio 在编译期间创建的输出目录和文件
  4. 每次我们打算编译时都需要重新定位快照视图
  5. 我们不相信快照视图的清洁度

我的问题:

  1. 我们从动态视图中复制文件是否正确?
  2. 我想知道我们是否可以通过某种方式使用快照视图并确保它是干净的?
  3. 我们是否可以采用任何其他选项或最佳实践来改进我们的流程?

任何帮助将不胜感激。

【问题讨论】:

    标签: compilation clearcase clearcase-ucm


    【解决方案1】:

    1/否:

    • 从动态视图复制比直接使用您只需更新(以捕获最新代码)的快照视图要长得多
    • 另外,在复制过程中,可以更新文件(签入新版本),然后由您的进程复制(因为动态视图会...动态选择新版本)。简而言之:您不知道自己在复制什么。
    • 快照视图的更新是一个增量过程。
      复制动态视图不是(它将复制所有内容,而不是仅下载增量)

    2/ 你会update -overwrite 以确保删除任何被劫持的文件

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

    【讨论】:

    • 我们在成功构建后创建基线。因此,按基线获取不是一种选择。此外,此过程不是针对开发人员的,而是持续集成的一部分。所以我们需要在不依赖任何基线的情况下获取最新的源代码。
    • VonC 先生,在我们的过程中,我们在开始复制之前锁定了流。所以我们确信我们正在复制什么。我们仅在构建成功后进行基线。因此,成功的构建是基线的先决条件。同样,这不是开发人员要遵循的构建过程。这是 SCM 团队的持续集成过程。
    • @msreekant 你也可以在之前复制基线。然后,无需锁定流。您需要在已构建的内容与其代码之间建立清晰的链接,而不会阻塞流。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多