28

Ruby 版本管理器允许我们.rvmrc在每个项目中使用一个文件来设置要加载的 ruby​​ 版本和 gem 集。是否应将此文件签入源代码管理?或者这是否过多地假设了其他开发人员的工作环境?

4

2 回答 2

31

源代码控制管理主要是关于可重复性:您是否能够根据存储在 SCM 中的内容来重现开发工作的版本?

如果.rvmrc您的项目中的任何开发人员都需要该文件才能工作(使用正确的工件),那么是的,您应该对其进行版本控制。

RVM 最佳实践中所述:

第 2 项 - 将您的 rvmrc 检查到源代码管理中。

通过将上述 rvmrc 与您的应用程序一起检查到源代码控制中,您可以确保所有用户在使用 rvm 时拥有一致的环境

通过自动化 gemset 安装等(例如检查 rvm-site 存储库中的 rvmrc 或 TEDxPerth 存储库的 rvmrc),您还可以像更改目录一样简单地开始使用。

最重要的是,您还可以自动使您的部署设置您的应用程序特定环境。

其他开发人员可以通过以下方式在其 RVM 上使用 gemset:

echo rvm_ignore_gemsets_flag=1 >> ~/.rvmrc

这将使他们始终使用默认 gemset。

于 2010-08-27T10:16:21.480 回答
11

我实际上建议不要保留.rvmrc在 SCM 中。两个具体原因:

  1. 如果您使用 gemsets,您会强制其他开发人员使用相同的 gemset(而有些人可能更喜欢将所有的 gems 放在全局 gemset 中)。

  2. 您使其他开发人员很难在不同的 Ruby 版本上运行项目。当然,在生产环境中它可能会运行1.9.2-p290,但为什么不允许我在本地运行应用程序1.9.3-p0呢?

通常,它对每个开发人员施加了太多的压力(与 相同的故事database.yml,也不应该保留在 SCM 中)。在“生产运行”Ruby 版本的项目的自述文件中的注释就足够了。

于 2011-12-11T20:44:39.360 回答