在Ruby项目中同时拥有.rvmrc和.ruby版本是不好的做法吗?

时间:2016-01-20 16:38:13

标签: ruby configuration duplicates rvm dotfiles

我目前正在处理两个Ruby项目,它们的根目录中都有.rvmrc.ruby-version文件。我使用 rvm 在我的本地开发环境中管理我的Ruby版本,并在我的主目录中拥有我自己的本地.rvmrc文件的各种Ruby版本的副本,所以很自然地我得到将目录更改为这些项目时出现 rvm 警告:

  

您正在使用' .rvmrc',它需要信任,速度较慢且与其他ruby管理器不兼容,   你可以切换到' .ruby-version'使用&rvm rvmrc来ruby-version'   或忽略此警告,并使用&rvm rvmrc警告忽略/home/ME/craft/ruby/rails/CLIENT/APPLICATION/.rvmrc',   ' .rvmrc'将继续作为RVM 1和RVM 2中的默认项目文件,   忽略所有运行文件的警告&r; rvmrc警告忽略all.rvmrcs'。

我觉得在同一个项目中同时拥有两个配置dotfiles是很奇怪的,并且认为这可能是我不知道的Ruby文化的历史怪癖(我是一个不那么自以为是的语言通才,真的)。我个人从不在项目中使用.rvmrc,而且我在一年内处理10-15个Ruby项目,很少在我使用的任何内容中看到这个文件。

问题确实出现在这两个项目的第二个项目中,其中.rvmrc文件的旧版本的Ruby版本比.ruby-version更旧。这导致了我解决的当地环境的一些复杂问题,尽管我觉得它有点尴尬。更糟糕的是,我修复了我的环境( git )' master'项目的分支,当我切换到最新的功能分支时,.ruby-version文件已更新为另一个不同的补丁号。所以我重复了一些事情,比如重新安装 bundler ,重新安装所有的gem,我选择手动切换到这个补丁版本。我不确定'正确'这样做的方式,这种方式似乎适用于我的环境(以复制宝石和占用硬盘空间为代价)。

我担心为什么项目会同时定义这些文件,特别是关注每个文件中具有不同版本/补丁号的项目。

这是正常的吗?是否应该通过从项目中删除.rvmrc文件来解决这个问题?至少应将.rvmrc文件更新为与.ruby-version文件相同的版本和修补程序编号吗?我本能地觉得这不对,但是想要了解有关 rvm 和其他维护Ruby版本的方法的历史,这些方法可能实际上使这个决定变得合理。任何人都可以传递这种情况可能会如何合理演变的历史,或者它是否只是厨房中厨师过多的症状?

possibly related question关于.ruby-version和Gemfile)

1 个答案:

答案 0 :(得分:3)

这是一种“不良做法”,因为它一次维护两个约定,这可能导致某些环境中的版本管理问题。它还使其中一个约定与项目中使用的ruby版本的另一个约定不同步。 .ruby-version文件目前比较常规,因此最好删除.rvmrc文件并仅维护.ruby-version

相关问题