如何在不离开当前目录的情况下重新加载 .ruby-version/.ruby-gemset/.rvmrc 文件?

9
我们正在使用RVM来管理数十个项目的rubies和gemsets。
有时,我会编辑.ruby-version或.ruby-gemset文件,或从我们的VCS拉取这些文件的更新版本,但是除非我告诉它,否则RVM不知道这些更改。如果更改来自VCS,即使我可能不知道它们。那么最好的方法是什么呢?
能够自动化这个过程将很不错,以便在我从存储库获取更改时自动执行。
我所知道的唯一使RVM重新读取这些文件的方法是cd到另一个目录,然后返回到项目目录。这显然很简单,但似乎有点不太优雅,并且没有自我记录。
我希望有一些类似于rvm reload的命令(存在,但做其他事情)来重新读取项目文件,但我找不到任何类似的东西。
2个回答

12

我认为我已经找到了答案,但由于其未经记录,我不知道它是否真的合法。

看起来,如果你这样做:

$ rvm use .

显然, RVM (Ruby版本管理器) 将会(重新)读取 .ruby-version 和 .ruby-gemset 文件(不确定是否包括.rvmrc文件, 因为我们不使用它们)。我发现了这一点是通过尝试 rvm use .ruby-version 和 rvm use .ruby-gemset 命令,两者似乎都导致RVM读取了两个'dot'文件。

截至 RVM 1.23.13 版本,文档中尚未提到此功能(即rvm help use命令)。

也许应该加入到文档中?


1
我使用 .rvmrc,之前我的做法是
cd;cd -
现在我改为
cd .
如果我运行
rvm use .
我会得到
无法确定要使用哪个 Ruby 版本;. 应该包含 .rvmrc 或 .versions.conf 或 .ruby-version 或 .rbfu-version 或 .rbenv-version,或者在 Gemfile 中有一个适当的行。(请参阅:'rvm usage')
但我觉得这不是真的(因为我确实在 . 目录下有一个 .rvmrc 文件),或者说我可能只是理解有误。
编辑:
我正在使用 rvm 1.25.33
我并不是想表达批评的意思,只是想添加更多信息!

1
正如我所提到的,我的解决方案没有文档说明,因此可能相当脆弱。也许你可以更新你的答案,加上你正在使用的 RVM 版本,以便与我的答案进行比较。 “cd .”听起来像一个更安全的技巧;这个想法没发生在我脑海里。 - Lambart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接