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

时间:2009-08-14 00:35:39

标签: version-control runtime development-environment

在版本控制下放置开发工具(编译器,IDE,编辑器......)和运行时环境(jre,.net框架,解释器......)有几个很好的理由。首先,只需检查存储库即可轻松编译/运行程序。你没有别的东西。其次,三合一肯定是版本兼容的,因为你曾经测试过它。但是,它有其自身的缺点。主要的是必须放在版本控制系统下的大量大型二进制文件。这可能会导致VCS变慢并且备份过程更加困难。你有什么想法?

7 个答案:

答案 0 :(得分:4)

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

IDE&编辑没有 - 理想情况下,您的项目应该可以从脚本构建,因此这些不是必需的。无论您使用什么编辑源,生成的输出仍应相同。

答案 1 :(得分:4)

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

答案 2 :(得分:2)

同样对于专有IDE(例如Visual Studio),可能存在许可问题,因为这使得管理谁正在使用哪些软件很困难。

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

  

首先,只需检查存储库即可轻松编译/运行程序。

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

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

答案 5 :(得分:0)

我将所有依赖项保存在名为“3rdParty”的源代码管理下的文件夹中。我同意这是非常方便的,你可以放下源并继续前进。这实际上不应该影响源控件的性能。

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

答案 6 :(得分:0)

我在不止一个地方看到过这种情况。在所有情况下,我发现它非常方便。