2012-12-25 21 views
12

Ruby newb tại đây.Gemfile.lock có nên được cam kết kiểm soát nguồn trên Windows không?

Tôi tải xuống ruby ​​qua rubyinstaller, đã làm gem install rails, đã giải quyết một vài thư viện bị thiếu và cuối cùng là chia tách số ruby project Tôi muốn thực hiện.

Trước khi chạm vào bất cứ điều gì, tôi thấy rằng Gemfile.lock của tôi được sửa đổi:

diff --git a/Gemfile.lock b/Gemfile.lock 
index aefda68..9ebccba 100644 
--- a/Gemfile.lock 
+++ b/Gemfile.lock 
@@ -46,6 +46,7 @@ GEM 
    diff-lcs (1.1.3) 
    erubis (2.7.0) 
    eventmachine (1.0.0) 
+ eventmachine (1.0.0-x86-mingw32) 
    execjs (1.4.0) 
     multi_json (~> 1.0) 
    hike (1.2.1) 
@@ -65,11 +66,17 @@ GEM 
    multi_json (1.3.6) 
    multi_xml (0.2.2) 
    pg (0.14.1) 
+ pg (0.14.1-x86-mingw32) 
    polyglot (0.3.3) 

... 

PLATFORMS 
    ruby 
+ x86-mingw32 

Tất cả các dòng biến đổi dường như của Windows có liên quan. This answer dường như chỉ ra rằng tôi không nên gitignore Gemfile.lock (nó đã cam kết repo tôi nhân bản anyway). This answer ngụ ý tôi có thể gặp lỗi nếu tôi cam kết & đẩy nó vào heroku (có ý nghĩa, vì tôi không muốn ứng dụng của mình phụ thuộc vào các tệp dành riêng cho Windows).

Vì vậy, đó là nó? Tôi nên sửa nó như thế nào? Tôi có nên xóa Gemfile.lock khỏi repo của tôi không?

+1

Có thể muốn thử các nền tảng trong GEmfile, http://qastuffs.blogspot.com/2011/02/how-to-configure-gemfile-for-windows.html?m=1 – house9

Trả lời

1

Lần trước tôi đã chuyển đến Heroku bằng Windows Gemfile.lock nó đã xử lý nó khá duyên dáng. Tôi không nhớ nếu nó không thành công và xây dựng lại các Gemfile.lock hoặc chỉ tước các thẻ đá quý nhị phân.

Có 2 tùy chọn khả thi tôi thấy.
Một là giả định rằng sẽ không có vấn đề gì với hành vi này. Có nghĩa là sử dụng yêu cầu phiên bản đá quý nghiêm ngặt hoặc cập nhật bundle và xác nhận mọi thứ hoạt động trước khi bạn đẩy.

Cách khác là sử dụng :platform flag in your Gemfile. Tôi sẽ không khuyên bạn nên điều này, nhưng nó nên lực lượng xuống và biên dịch đá quý tại địa phương. Điều này có nghĩa là mọi phụ thuộc bên ngoài cần phải có sẵn. Với rất nhiều đá quý nhị phân (như đá quý pg) đây không phải là một nhiệm vụ dễ dàng. Với một số đá quý khác, nó có thể gần như không thể. Một lần nữa, tôi sẽ không khuyên bạn nên làm điều này.

+0

Tôi muốn tránh mọi sửa đổi đến gemfile. Tôi đã cố gắng gửi một yêu cầu kéo đến dự án tôi chia đôi, chỉ để tìm hiểu sau đó rằng tôi đã vô tình cam kết gemfile. Mặc dù nó có thể không gây ra vấn đề, gemfile-sửa đổi chắc chắn không phải là một phần của những gì tôi đang cố gắng để đẩy lùi chúng. Một trong các tùy chọn này có hoạt động không? Cả hai dường như yêu cầu một số sửa đổi cho gemfile. – ripper234

+0

Xin lỗi, tôi cho rằng câu hỏi là tác động của 'Gemfile.lock' khi triển khai ứng dụng của bạn tới môi trường Linux. – Azolo

+0

Tôi đã xem [yêu cầu kéo] (https://github.com/lockitron/selfstarter/pull/22) Tôi giả sử bạn đang nói về. Có vẻ như bạn đã thêm một phụ thuộc 'pry' và thay đổi' Gemfile.lock'. Trớ trêu thay bạn không cam kết thay đổi 'Gemfile' chỉ là những thay đổi 'Gemfile.lock'. = P Tôi sẽ quay trở lại và loại bỏ các thay đổi 'Gemfile.lock' khỏi các cam kết vì sự thay đổi là ngẫu nhiên. – Azolo

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