gpt4 book ai didi

version-control - 您如何在源代码管理中存储第三方库?

转载 作者:行者123 更新时间:2023-12-03 10:26:51 24 4
gpt4 key购买 nike

您如何在源代码管理中存储您在项目中使用的第三方库?

您什么时候将二进制文件存储在源代码管理中?

您什么时候将代码存储在源代码管理中?

你会同时存储两者吗?在什么情况下你会这样做?

(顺便说一句,我正在使用 .NET 但对于这个问题并不重要)

最佳答案

  • 如何: vendor branch 通常是一个好方法
  • 当(第三方) :为了尽量减少所涉及的引用数量:您可以将这些库添加到单独的外部引用(如 Maven)中,但这意味着您需要访问每个环境的额外引用(开发 - 集成 - 认证 - 预生产 - 生产)
  • 当(代码) :为了管理更改的复杂性,当您知道在进行新开发时需要对当前版本进行生产的更新和修复。
  • 为什么(同时存储) : 对于 deployment 原因:您可以在一个引用中管理完整的配置(您需要的元素列表),并随时随地查询:
  • 开发(您查询开发和执行代码所需的内容,包括编译/执行所需的第三方)
  • 测试(集成、认证):您可以使用
  • 查询要更新测试工作区的确切标签
  • 生产:您可以准确地确定从一个来源进入生产的内容:您的 SCM。

  • 对于测试和生产环境,这也意味着你自己的产品(你正在构建的打包结果)也应该进入你的 SCM(只有官方版本,而不是内部使用的中间版本)。
    如果其他项目依赖于您的产品,他们将根据您存储在 SCM 中的打包版本构建自己的项目,而不是根据他们以某种方式重新编译的源代码。

    为什么这很重要?
    因为最终,将在生产中运行的是您产品的打包版本,而不是您的“重新编译的源代码”。因此,使用产品的目标最终形式进行所有测试的重要性,在您的 SCM 中清楚地存储和标记。

    Martin Lazarhis answer 中提出了一个合理的观点

    Source control is called "source" control, because it is supposed to control sources.



    虽然这在历史上可能是正确的,但每个当前的 RCS 都已向 SCM ( Source Code Management) 发展,它不仅控制源,还管理对存储为计算机文件的文档、程序和其他信息的更改。
    然后可以存储二进制文件(甚至用二进制增量存储)

    另外,允许其中一些 SCM 提出 S"C"M 功能(如 Source Configuration Management )。
    该 SCM(配置)不仅存储任何类型的“文件集”,还存储这些文件集之间的关系(又名依赖关系),以便您查询一组文件,并“拉取”其他所有交付该集合取决于(构建或部署或运行​​)

    关于version-control - 您如何在源代码管理中存储第三方库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735699/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com