【问题标题】:checkin or not checkin which will be preferred in clearcase UCM?签入或不签入在 clearcase UCM 中哪个是首选?
【发布时间】:2012-01-05 19:27:50
【问题描述】:

在我们的构建系统中,一旦构建结束,程序集也将被签入。但是当我们搬到 UCM 时,建筑师们对此意见不一。很少有人支持签入已编译的程序集和 msi,也很少有人反对。

当我们签到时,我们只是做符号链接,这给了我们很大的优势。此外,当签入完成后,它将从 bin 和 release 文件夹中删除条目,而不是复制。它帮助了我们很多。每天,人们都可以通过每晚构建来处理最新的组件签入。现在他们无法做到这一点。他们希望我将 Nightly 构建 dll 复制到某个公共位置。

另一方面,由于每天签入,我们的存储库变得越来越庞大。

我不知道什么是最好的选择。

您能分享一下您对哪种方法更好的看法吗?在 UCM/Clearcase 中签入程序集是否更好?

【问题讨论】:

标签: build-process build-automation clearcase clearcase-ucm


【解决方案1】:

作为一种惯例,不应将所有构建输出置于源代码控制之下。但是,您必须将它们放在一个共同的地方,直到它们过期。这种做法背后的理念是:

  1. 随着您向其中添加二进制文件,存储库的大小会变大。
  2. 在夜间构建中生成的旧版本的程序集(属于 2 年前)已无用。另一方面,旧版本的源代码及其历史一直很有用。
  3. 除了构建结果之外,软件产品通常还依赖于第三方组件。这些第三方组件通常是经过改进的,并且通常会发布它们的较新版本。将构建结果保存在源代码控制中,您必须将第三方组件的正确版本保存在其他地方。

【讨论】:

  • 您是否建议在源代码管理中使用第三方组件?
  • 是的,只要您的代码的特定版本仅适用于特定版本的外部库,因此,您应该将它们保存在源代码管理中。
【解决方案2】:

反对在 ClearCase 中签入程序集的另一个原因是可能缺少清理功能:您不能轻易地rmver 一些您可能不需要的版本,而不会损害 Vob 存储库。

这在 UCM 中尤其如此,其中元数据和超链接被添加到版本中,这使得删除一个对依赖它的其他对象(如 UCM 基线)的完整性非常危险。

对于其他更一般的版本控制二进制文件的原因,请参阅“Is it good practice to store framework runtimes under source control?”和hsalimi's answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多