你是否将开发/运行时工具放入代码库?

4

将开发工具(编译器、IDE、编辑器等)和运行环境(jre、.net框架、解释器等)放入版本控制中有几个好处。首先,你可以通过检出你的代码库来轻松编译/运行程序,无需其他任何东西。其次,这个三元组肯定是版本兼容的,因为你曾经测试过它。然而,这种方法也有缺点。主要问题在于必须将大量的二进制文件放入版本控制系统中,这可能会导致VCS变慢并使备份过程更加困难。你有什么想法?

7个回答

4

用于编译和构建项目的实际工具和依赖项,非常有用 - 如果您需要调试问题或为旧版本开发修复程序并且已经转移到与旧版本不完全兼容的新版本,则这非常有用。

IDE和编辑器不需要 - 理想情况下,您的项目应该可以从脚本中构建,因此这些工具不是必需品。生成的输出应该与您用于编辑源代码的工具无关。


由于我通常使用具有内置编译器的Eclipse,因此我更喜欢将其放在版本控制系统下。 - user156178
我必须同意。构建 = 源代码 + 工具。如果你两者都没有,就无法进行构建,而能够在同步后直接从新机器上进行构建是成熟开发环境的标志,我个人认为。 - Justin R.

4

我在每个项目根目录中都包含一个文本文件(因此易于比较差异),名为“如何运行此项目”,其中包括所有必要的内容,包括正确的 .net 版本和服务包。


2

对于专有的IDE(例如Visual Studio),存在许可问题,这使得难以管理谁正在使用哪些软件。

编辑: 我们还曾经在源代码控制中存储批处理文件,自动检出源代码(和所有依赖项)。开发人员只需检出“设置”文件夹并运行批处理脚本,而不必在存储库中搜索适当的部分。


1
我发现非常好的做法(至少在我有经验的 .Net 项目中)是将任何“非默认安装”的依赖项放入带有源代码控制的 lib 或 dependencies 文件夹中。运行时由 GAC 提供并且被默认使用。

1
首先,您可以通过检出存储库轻松编译/运行程序。

不是真的:仅仅获取/复制/检出工具通常是不够的,必须在工作站上安装该工具。

就个人而言,我见过源代码版本控制系统中的库和第三方组件,但没有工具。


0

我将所有依赖项都保存在一个名为“3rdParty”的文件夹下的源代码控制中。我认为这非常方便,你只需要拉取源代码就可以开始工作了。这真的不应该影响源代码控制的性能。

唯一的缺点是初始下载大小可能会相当大。在我的情况下,任何拉取代码的人通常也会运行它,所以没问题。但是如果你希望许多人仅仅为了阅读而拉取源代码,那么这可能会很烦人。


0

我在多个工作场所都看到过这样的做法。在所有情况下,我发现这是非常方便的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接