2013-01-23 39 views
15

Tôi đã là một lập trình viên duy nhất trên một dự án cụ thể, nhưng bây giờ một người khác đã tham gia với tư cách cộng tác viên. Chỉ với tôi trong bức ảnh, các bản cập nhật bundler đã được mịn màng và tôi chưa bao giờ nghĩ hai lần về số Gemfile.lock đang được Git theo dõi.Làm thế nào để đối phó với cập nhật bundler (Gemfile.lock) trong bối cảnh hợp tác?

Các cộng tác viên mới chạy bundle install sau khi nhân bản repo, và Gemfile.lock đã được cập nhật như sau:

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 

Sự thay đổi này đã được đẩy vào một chi nhánh tên là off chủ. Làm thế nào tôi phải đối phó với sự thay đổi này?

Suy nghĩ to: Tôi có hợp nhất Yêu cầu kéo trên GitHub không? Tôi chỉ cần kéo từ thượng lưu mà không có yêu cầu kéo lúc đầu? Tôi có chạy một lệnh bundler cụ thể để đồng bộ hóa mọi thứ với Gemfile.lock của cộng tác viên khác không? Có điều gì đó mà cộng tác viên khác có thể đã làm khác đi, để họ không gây ra bất kỳ đá quý nào để cập nhật (thay vào đó, chỉ cần tải xuống các đá quý được chỉ định trong Gemfile.lock hiện tại)? Các phương pháp hay nhất xung quanh tình huống này là gì?

Trả lời

29

Gemfile.lock nên được kiểm soát phiên bản. Bạn nên cam kết bất kỳ thay đổi nào đối với nó. Khi ai đó (người bạn tin tưởng) cập nhật nó, bạn nên chạy bundle install để cài đặt các đá quý hiện đang bị khóa trong Gemfile.lock.

Chỉ cần chạy bundle install sẽ không cập nhật Gemfile.lock hiện có. Để làm như vậy, bạn cần chạy bundle update.

Tất cả những gì đã nói, không có thay đổi thực sự đối với các phiên bản trong Gemfile.lock của bạn. Tất cả những thay đổi đó là thứ tự của các đối số cho một vài dòng. Bạn có thể hợp nhất các thay đổi đó một cách an toàn hoặc bỏ qua chúng; Gemfile.lock kết quả sẽ được (chức năng) giống hệt nhau.

+2

Có Gemfile.lock của bạn dưới sự kiểm soát phiên bản được coi là thực hành tốt nhất. Điều này đảm bảo rằng cùng một gói phụ thuộc sẽ được xây dựng ở bất cứ nơi nào bạn cài đặt ứng dụng của bạn, cho dù đó là một nhà phát triển khác làm việc trên mã nguồn hay gói cho máy chủ sản xuất của bạn. – ianpetzer

+0

đảm bảo cả hai bạn sử dụng cùng một phiên bản gói để Gemfile.lock được tạo ra giống nhau và không tạo ra những thứ khác nhau mà sẽ là một báo động giả cam kết – hammady

Các vấn đề liên quan