我应该把包含的代码放在SCM下吗?

时间:2010-11-24 16:03:04

标签: version-control

我正在开发一个网络应用程序 如果我包含一个jQuery插件(或jQuery文件本身),则必须将其放在我的静态目录下,该目录位于SCM下,才能正确提供。

即使我不打算从中修改任何东西,我应该对它进行gitignore或添加它吗? 那么可能附带的二进制文件(图形资源)呢?

提前感谢任何建议!

4 个答案:

答案 0 :(得分:2)

我的观点是,您需要管理应用程序正常运行所需的一切。这包括第三方代码。

如果您没有将其置于SCM下,那么如何在您的生产系统上正确部署?如果您有其他方法可以确保这一点,那很好,但除此之外,您还要承担成功部署是人们记住要做所有正确事情的风险,而不是一些自动化的低风险"推动按钮"过程

如果您不在SCM或类似的情况下管理它,您如何确保您开发的针对和测试的版本是相同的?他们和生产一样吗?调试由您不注意的版本差异引起的问题可能非常糟糕。

答案 1 :(得分:1)

我通常直接向项目添加外部资源。这样做有助于部署并确保如果有人在您的项目中更改了此文件的版本,则您可以清楚地了解在您编写的代码中导致问题的情况下发生的情况。开发人员应该知道不要修改这些外部资源。

我想你可以使用类似git子模块的东西,但我觉得这不值得过去麻烦。

来自外部资源的二进制文件也可以签入项目,但如果它们非常大,您可能需要考虑不同的方法。

答案 2 :(得分:0)

之类的外部资源放入您的仓库中 没有太多原因:

  1. 如果您每次签出或部署时都从jQuery中删除它,那么您对使用的版本的控制就会减少。这适用于大多数第三方图书馆;你可能不想升级你的库而不用你的代码测试它是否会破坏它。
  2. 当您检查存储库时,您将始终拥有完整的网站副本,而您无需寻找可能无法使用的资源。
  3. 对于像jQuery和图像这样的小文件(就文件大小而言),我只是添加它们,除非你真的非常关心空间。

答案 3 :(得分:0)

取决于。

这些论点与您系统上的库复制以及将其从原始位置拉出来有关。

赞成的论点:

  1. 当其他人加入您的开发团队时,它将确保您可以在一个地方找到项目所需的所有。我已经失去了为什么我不得不在寻找合适的库版本以便能够让工作变得有效的次数。

  2. 如果您对库进行任何修改,您可以对源代码控制版本进行这些更改,以便在新版本出现时使用源代码控制的合并工具,以确保您的编辑不会丢失。

  3. 反对的论点:

    1. 这可能意味着每个人都在本地拥有该库的副本 - 除非您将第三方工具映射到中央服务器。

    2. 部署可能会有问题 - 除非您将第三方工具映射到中央服务器,并且不将它们包含在部署脚本中。