Rubyバージョンマネージャーを使用すると、各プロジェクトのファイルを使用して、.rvmrc
ロードするRubyバージョンとgemセットを設定できます。このファイルをソース管理にチェックインする必要がありますか?それとも、これは他の開発者の作業環境についてあまりにも多くを推測していますか?
2 に答える
ソース管理は主に再現性に関するものです。SCM に保存したものに基づいて、開発作業のバージョンを再現できますか?
プロジェクトの開発者が(適切なアーティファクトを使用して)作業できるようにするためにその.rvmrc
ファイルが必要な場合は、はい、バージョン管理する必要があります。
RVM のベスト プラクティスで述べたように:
No. 2 - rvmrc をソース管理にチェックインします。
前述の rvmrc をアプリと共にソース管理にチェックインすることで、すべてのユーザーが rvm を使用しているときに一貫した環境を確保できます。
また、gemset のインストールなどを自動化することで (たとえば、rvm-site リポジトリの rvmrc や TEDxPerth リポジトリの rvmrc を確認してください)、ディレクトリを変更するだけで簡単に開始できます。
これに加えて、デプロイメントでアプリケーション固有の環境を自動的にセットアップすることもできます。
他の開発者は、次の方法で RVM で gemset の使用を無効にすることができます。
echo rvm_ignore_gemsets_flag=1 >> ~/.rvmrc
これにより、デフォルトの gemset を常に使用するようになります。
.rvmrc
私は実際に SCM にとどまらないことをお勧めします。2 つの具体的な理由:
gemset を使用する場合は、他の開発者に同じ gemset を使用するよう強制します (一部の開発者は、すべての gem をグローバル gemset に配置することを好む場合があります)。
他の開発者が別の Ruby バージョンでプロジェクトを実行するのを困難にしています。確かに、本番環境では で実行される可能性があります
1.9.2-p290
が、アプリを でローカルに実行することを許可されないのはなぜ1.9.3-p0
ですか?
一般に、各開発者に負担がかかりすぎます ( database.yml
SCM に保持すべきではない と同じ話です)。「本番稼働中」の Ruby バージョンのプロジェクトの README のメモで十分です。