Version control 您是否将开发/运行时工具放在存储库中?

Version control 您是否将开发/运行时工具放在存储库中?,version-control,runtime,development-environment,Version Control,Runtime,Development Environment,将开发工具(编译器、IDE、编辑器等)和运行时环境(jre、.net framework、解释器等)置于版本控制之下有几个很好的原因。首先,只需签出存储库,就可以轻松编译/运行程序。你不必有别的东西。第二,正如您曾经测试过的那样,triple版本肯定是兼容的。然而,它也有自己的缺点。主要的一个是大容量的二进制文件必须置于版本控制系统下。这可能会导致VCS速度变慢,备份过程更加困难。你的想法是什么?我发现非常好而且常见的(在我有经验的.Net项目中)是在库或带有源代码管理的依赖项文件夹中包含任何“

将开发工具(编译器、IDE、编辑器等)和运行时环境(jre、.net framework、解释器等)置于版本控制之下有几个很好的原因。首先,只需签出存储库,就可以轻松编译/运行程序。你不必有别的东西。第二,正如您曾经测试过的那样,triple版本肯定是兼容的。然而,它也有自己的缺点。主要的一个是大容量的二进制文件必须置于版本控制系统下。这可能会导致VCS速度变慢,备份过程更加困难。你的想法是什么?

我发现非常好而且常见的(在我有经验的.Net项目中)是在库或带有源代码管理的依赖项文件夹中包含任何“非默认安装”依赖项。运行时是由GAC提供的,并且是假定的

首先,只需签出存储库,就可以轻松编译/运行程序

不正确:仅获取/复制/签出工具通常是不够的,相反,该工具还必须安装在工作站上


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

我将所有依赖项保存在名为“第三方”的源代码控制文件夹中。我同意,这是非常方便的,你可以拉下来的来源,并开始。这真的不应该影响源代码管理的性能


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

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

IDE的&编辑器否-理想情况下,您的项目应该可以从脚本构建,这样就不需要这些了。无论您使用什么编辑源代码,生成的输出都应该是相同的。

对于proprietry IDE(例如Visual Studio),也可能存在许可问题,因为这使得很难管理谁在使用哪些软件

编辑:
我们还用于在源代码管理中存储自动签出源代码(以及所有依赖项)的批处理文件。开发人员只需签出“Setup”文件夹并运行批处理脚本,而不必搜索存储库中的适当部分。

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

我在不止一个我工作过的地方看到过这样做。在所有情况下,我都发现它非常方便。

因为我通常使用内置编译器的eclipse,所以我更喜欢将它放在VCS下。我必须同意。构建=源代码+工具。imho说,如果你没有这两个功能,你就不会得到一个构建,并且能够在同步之后直接构建,即使是从一台新的机器上,也是成熟开发环境的一个标志。