version-control - 如何对构建工具和库进行版本控制?

标签 version-control build-process build-automation clearcase

对于将编译器,库和其他工具包含在源代码控制系统本身中的建议是什么?

过去,我遇到了这样的问题:尽管我们拥有所有源代码,但构建产品的旧版本却是在设法获得正确正确的Visual Studio,InstallShield和其他工具(包括正确的修补程序版本)用于构建产品。在我的下一个项目中,我想通过将这些构建工具检入源代码控制中,然后使用它们进行构建来避免这种情况。这也将简化设置新构建机器的过程-1)安装我们的源代码控制工具,2)指向正确的分支,3)构建-就是这样。

我考虑过的选项包括:

  • 将安装CD ISO复制到源代码控制中-尽管这提供了我们必须返回到较旧版本时所需的备份,但这不是“实时”使用的好选择(每个构建都需要从安装开始步骤,可以轻松地将1个小时的构建转换为3个小时)。
  • 安装该软件以进行源代码管理。 ClearCase将您的分支映射到驱动器号;我们可以将软件安装在此驱动器下。这没有考虑安装工具的非文件部分,例如注册表设置。
  • 安装所有软件并在虚拟机内部设置构建过程,将虚拟机存储在源代码管理中,并弄清楚如何使VM在引导时进行构建。在我们轻松捕获“构建机器”的状态的同时,我们获得了VM的开销,并且对于“使开发人员可以使用相同的工具”这一问题无济于事。

  • 看来配置管理是一个基本概念,但是我一直无法找到任何有关执行此操作的资源。有什么建议?

    最佳答案

    我认为VM是您最好的解决方案。我们始终使用专用的构建机器来获得一致性。在旧的COM DLL hell 时代,安装的非开发软件(Office)依赖于(COMCAT.DLL,任何人)。您的前两个选项无法解决共享COM组件的任何问题。如果您没有任何共享组件的问题,也许它们会起作用。

    开发人员没有理由不能复制同一虚拟机的副本以能够在干净的环境中进行调试。如果您的体系结构中有很多物理层,例如邮件服务器,数据库服务器等,您的问题将更加复杂。

    关于version-control - 如何对构建工具和库进行版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117930/

    相关文章:

    jenkins - 持续集成与自动构建器

    build-process - 在自动构建中生成文档

    .net - TFS Express 版本 - 安装在服务器还是本地计算机上?

    git - 不小心创建了具有现有名称的新分支

    build-process - 如何将 Flash Player 预建应用程序添加到 android 中的 system.img?

    git - 处理 Go Git 存储库及其非代码资源

    java - Maven - 在构建时包含不同的文件

    c++ - 持续集成 : Unmanaged C++ on Visual Studio 2008

    version-control - 你使用什么命令来刷新你的 Mercurial 开发环境?

    intellij-idea - IntelliJ - 如何重新启用 "Update Project"弹出窗口