web-dev-qa-db-ja.com

コラボレーションコンテキストでバンドラーの更新(Gemfile.lock)を処理する方法は?

私は特定のプロジェクトで一人のプログラマーでしたが、今では他の誰かが共同作業者として参加しています。写真に写っているのは私だけで、bundlerの更新はスムーズで、Gemfile.lockがGitによって追跡されていることを2度考えたことはありません。

新しい共同作業者は、リポジトリのクローンを作成した後にbundle installを実行し、Gemfile.lockは次のように更新されました。

Gemfile.lock

@@ -141,7 +141,7 @@ GEM
       rack-ssl (~> 1.3.2)
       rake (>= 0.8.7)
       rdoc (~> 3.4)
-      thor (< 2.0, >= 0.14.6)
+      thor (>= 0.14.6, < 2.0)
     raindrops (0.10.0)
     rake (0.9.2.2)
     rdoc (3.12)
@@ -164,7 +164,7 @@ GEM
     sprockets (2.1.3)
       hike (~> 1.2)
       rack (~> 1.0)
-      tilt (!= 1.3.0, ~> 1.1)
+      tilt (~> 1.1, != 1.3.0)
     thor (0.16.0)
     tilt (1.3.3)
     treetop (1.4.10)
@@ -175,7 +175,7 @@ GEM
     tzinfo (0.3.33)
     uglifier (1.3.0)
       execjs (>= 0.3.0)
-      multi_json (>= 1.0.2, ~> 1.0)
+      multi_json (~> 1.0, >= 1.0.2)
     Unicorn (4.3.1)
       kgio (~> 2.6)
       rack

この変更は、マスターから離れた名前付きブランチにプッシュされました。この変更にどのように対処する必要がありますか?

大声で考える:GitHubでプルリクエストをマージしますか?最初はプルリクエストなしでアップストリームからプルするだけですか?特定のbundleコマンドを実行して、他の共同編集者のGemfile.lockと同期しますか?他のコラボレーターが別の方法で実行して、gemを更新しないようにすることができますか(既存のGemfile.lockで指定されたgemをダウンロードするためだけに)?この状況に関するベストプラクティスは何ですか?

16
user664833

Gemfile.lock shouldバージョン管理されている必要があります。変更をコミットする必要があります。誰か(信頼できる人)がそれを更新したら、bundle installを実行して、現在Gemfile.lockにロックされているgemをインストールする必要があります。

bundle installを実行するだけでは、既存のGemfile.lockは更新されません。これを行うには、bundle updateを実行する必要があります。

とはいえ、Gemfile.lockのバージョンに実際の変更はありません。変更されたのは、数行の引数の順序だけでした。これらの変更を安全にマージすることも、無視することもできます。結果のGemfile.lockは(機能的に)同一になります。

33
meagar