你检查你的rvmrc文件?

And*_*Vit 28 ruby version-control rvm

Ruby Version Manager允许我们.rvmrc在每个项目中使用一个文件来设置要加载的ruby版本和gem集合.该文件是否应该签入源代码管理?或者这对其他开发人员的工作环境有太多假设?

Von*_*onC 31

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

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

RVM最佳实践中所述:

2号 - 检查你的rvmrc进入源代码控制.

通过在应用程序旁边检查上述rvmrc到源代码控制,您可以确保所有用户在使用rvm时都具有一致的环境.

通过自动化gemset安装等(例如,查看rvm-site存储库中的rvmrc或TEDxPerth repostory的rvmrc),您也可以像更改目录一样简单.

除此之外,您还可以自动使部署设置为特定于应用程序的环境.

其他开发人员可以在其RVM上使用gemsets:

echo rvm_ignore_gemsets_flag=1 >> ~/.rvmrc
Run Code Online (Sandbox Code Playgroud)

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

  • 这是否会迫使团队中的其他开发人员使用与.rvmrc创建者同名的gemset? (4认同)
  • 如果项目使用的是bundle,我通常不会在rvmrc中包含gemset.如果它不使用bundler,那么给它一个与项目匹配的gemset名称,并使用--create标志,以便自动创建. (3认同)

Paw*_*cki 11

我实际上建议不要保留.rvmrcSCM.两个具体原因:

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

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

一般来说,它对每个开发人员执行过多(同样的故事database.yml,也不应该保留在SCM中)."生产运行"Ruby版本项目自述文件中的注释就足够了.