Bundler:verwenden Sie immer die neueste Version von git branch in Gemfile
Frage
Ich habe ein Gemfile mit einem privaten git-repo im folgenden format:
gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'
Wenn Ich bundle install
, die Gemfile.sperren sperrt es sich auf eine bestimmte SHA überarbeitung.
Kann ich bundler immer überprüfen und verwenden die neuesten commit SHA und/oder aktualisieren Sie die Gemfile.Sperre?Beachten Sie, dass, wenn ich push-updates, um die super_beans
Filiale bin ich nicht ändern der gem-version.
Im Idealfall, jedes mal, wenn ich laufen bundle
es wäre zu überprüfen upstream git repo für eine neuere SHA revision der Branche.
Lösung
So funktioniert Bundler nicht. Es geht darum, eine nahtlose Version von Abhängigkeiten zu ermöglichen. (Besonders damit Sie genau wissen, welche Version des Code zu einem bestimmten Zeitpunkt bereitgestellt wird).
Wenn Sie die neueste Version wünschen, sollten Sie einfach ausführen.
bundle update magic_beans
Dies ist genau die gleiche Funktionalität wie Sie nur sagen
gem "rails"
Ich würde jedoch vorschlagen, wenn Sie über eine Reihe spezifischer Dinge verfügen, die Sie aktualisieren möchten, fügen Sie eine benutzerdefinierte Binärdatei hinzu (sagen Sie eine ausführbare Datei namens namens bundle_update
)
#!/usr/bin/env bash
bundle install
bundle update magic_beans
Dann machen Sie einfach eine ./bundle_update
Wenn Sie diese Dinge aktualisieren möchten.
Andere Tipps
Sie können laufen bundle update
aktualisieren Sie alle oder bestimmte Edelsteine, um Ihre neuesten verfügbaren version, wie bereits in der docs.
Würde das helfen?
Nachdem ich die Dokumente durchsucht hatte, fand ich endlich die magische Art, dies zu tun:
bundle update magic_beans --source magic_beans
Das ist, um die zu aktualisieren magic_beans
Nur Gem, aber nicht andere verschlossene Edelsteine. Der Doc darüber ist: http://bundler.io/man/bundle-update.1.html
Löschen .Gemlock ist das, was für mich funktioniert hat:/