2009-07-23 6 views
2

私のアプリケーションに最新のRails gemを使用するのではなく、コードを自分のgitリポジトリにローカルに置くことができます。つまり、vendor/railsに入れることです。本番用アプリケーションのためにレールを販売するために推奨される方法は何ですか?

これを実行するには、実行する特定のブランチ/タグのソースをダウンロードし、それを自分のリポジトリにコミットするか、gitサブモジュールを使用する方法があります。

サブモジュールは自然なやり方のようですが、リポジトリを複製するたびに、そのサブモジュールを使用するブランチを手動でチェックアウトする必要があります(そうしないと、 masterを取得しますか?)そして、この方法を使ってCapistranoの展開に影響を与えますか?

答えて

1

私はリリースで凍結お勧めします:

rake rails:freeze:edge RELEASE=2.3.3 

は2-3安定のためのgitのブランチがあり、私はそれを使用してひどい時間を過ごしました。サブモジュールは少し痛みです。ツールBraidはかなりいいですが、私はリリースでRailsをフリーズするのが好きです。

Capistranoはコードを展開するのがやや遅くなります(Railsのコードベース全体がそこにあります)が、capistrano自体と実動設定を変更する必要はありません。

幸運を祈る!

1

capistranoはサブモジュールをサポートしています。また、remote_cacheを使用して配備している場合、配備はすばらしく高速です。あなたのdeploy.rbでは次のものが必要です。

セット:git_enable_submodules、真 セット:deploy_via、:remote_cache

私はあなたがリポジトリをクローンについて尋ねるとき、あなたは何を意味するかはかなりよく分からないが。サブモジュールとしてRailsを用意したら、特定のコミット/タグ/ブランチにそれを固定することができます。これはあなたのリポジトリに一種の分散シンボリックリンクを保存しています(少なくとも私の考え方です)。問題のRailsコミットを指しています。レポをクローンすると、そのコミットのツリーも自動的にプルダウンされます(私は思う!)。

私は数ヶ月前に自分自身を通過し、ここに書きました。それは私のためにうまくいく。

http://blog.airbladesoftware.com/2009/4/28/how-to-vendor-rails

+0

こんにちはアンディ:)の情報のため 感謝。私は元々あなたのブログ記事に従っていましたが、私たちはサブモジュールでいくつかの問題に遭遇しました。例えば、最初にリポジトリをクローンしたとき、私はあなたがリポジトリのユーザをたくさん持っていて、そのうちのいくつかが技術的なものではないとき、これは理想的ではありません。私は、最も簡単な解決法とレーキ・レールを望んでいました。凍結:縁が私のためにうまくいくように思えました。 – Olly

+0

こんにちはOlly :)シンプルがいいです、私は喜んでレイクレールです:フリーズ:エッジは仕事をします。 –

関連する問題