5

私は bundler v1.3.0.pre.2 を実行しており、gem を保持するローカル git リポジトリを rails アプリにバンドルするよう bundler を取得しようとしています。

Gemfile :

gem 'mygem', :github => 'myrepo/mygem', :branch => 'develop'

構成:

bundle config local.mygem /path/to/local/git/repo

バンドルのインストールで次のエラーがスローされます。

/path/to/local/git/repo にある mygem のローカル オーバーライドはブランチ開発を使用していますが、Gemfile は開発を指定しています

これはバグですか?ブランチ名がまったく同じであることがわかります。何が間違っている可能性がありますか? Bundler v1.2.3 でも同じエラーが発生しました

4

4 に答える 4

10

このように、ローカルの宝石や、​​作業中のブランチを使用することもできます

gem 'rspec-rails', path: '~/forks/rspec-rails', branch: 'feature-branch'

に変更githubするだけpathです。

bundle install

また、バンドラーの構成に関する限り、ドキュメントには記載されていますが、上記のようにローカル構成を変更する必要はありません。

この方法ではGemfile.lock、 を削除する必要はありません。ローカル リポジトリへの変更を取得するだけです。

お勧めしませんが、開発時に正しいブランチを使用していることを確認するために、バンドラーが使用するブランチ チェック機能を無効にすることができます。

bundle config disable_local_branch_check true
于 2013-06-17T21:49:34.933 に答える
7

gemfile で、gem のように使用しているローカル リポジトリ内のブランチを指すだけの場合:

gem 'gem-name', :path=> 'relative/path/to/directory'

次に、その「gem」のバンドラー構成を作成してからbundle-ing

(これは標準ではありませんが、リポジトリ名は gem の名前とは異なる場合があることに注意してください)。

bundle config local.repository-name relative/path/to/directory


魔法のように、現在ローカルでチェックアウトされているブランチは、ローカル サーバーを起動するとアクティブになります。変更を加えたり、ブランチを変更したりする必要がある場合は、おそらくサーバーを再起動する必要があります (何らかの自動再読み込み機能がない場合)。

落とし穴の 1 つは、構成設定が既に確立されており (上記のメカニズムを介してとしましょう)、リモート git gem を使用/参照する必要がある場合です。リモート git gem を使用するためにバンドラー構成は必要ありません (アクティブな構成すると、local overrideエラーが発生します)。

特定の gem のローカル設定がないことを確認します。

bundle config local.gem-name

その場合は、その gem の構成を削除します。

bundle config --delete local.gem-name

次に、gemfile でリモート リポジトリとブランチを指定します。

gem 'gem-name', :path => 'https://github.com/reponame.git', :branch => 'branch_name'

詳しくは:

Git Gems: http://bundler.io/v1.7/git.html

「バンドル構成」: http://bundler.io/v1.7/man/bundle-config.1.html

于 2014-08-14T18:17:57.217 に答える
1

Gemfile で参照するブランチは、ローカル リポジトリでチェックアウトしたものと同じである必要があります。ローカル リポジトリでコミットした後、メイン アプリケーションで bundle install を実行して、Gemfile.lock を再構築し、新しいリビジョン ハッシュを含めてコミットする必要があることに注意してください。このプロセスを自動化し、他のシナリオにも役立つため、以下の gem を使用することをお勧めします。正確な詳細については、宝石のページを参照してください。

https://github.com/EPI-USE-Labs/git-bundle

何が起こるかの完全な詳細:

gemfile で git リポジトリを使用する場合、Gemfile.lock にリビジョン ハッシュを保存する開発用バンドル ローカル オーバーライドを使用できます。本番環境では、これらの正確なリビジョン ハッシュは bundle install の実行時にチェックアウトされます。

Gemfile: gem 'example', git: 'https://github.com/your_name/example.git', branch: :master

バンドル構成シェル コマンド: bundle config local.example /path/to/local/git/repository

Gemfile.lock (自動生成): GIT remote: https://github.com/your_name/example.git revision: b9270e61abb89e1ff77fb8cfacb463e4d04388ad branch: master

于 2016-07-01T16:23:40.457 に答える