Подтвердить что ты не робот

Целесообразно ли включать содержимое поставщика/кеша в Git в приложение Rails 3.2?

Мне часто нужно создавать ветки в моем приложении для новой разработки. Это часто означает, что у меня есть изменения в моем Gemfile в моей ветке, которых нет в Master, и как таковые я получаю различия в кешированных драгоценных камнях в поставщике/кеше.

Я нахожу, что это беспокоит меня, что я совершаю кеширование драгоценных камней, но я не знаю, действительно ли это неправильно. Должен ли я быть .gitignore -в этих? И если да, должен ли я git rm хранить файлы в кеш-памяти?

4b9b3361

Ответ 1

TL; DR: Это зависит от вас, но я рекомендую хранить их в git.

То, что vendor/cache делает, позволяет связывать, особенно пакет развертывания, чтобы пропустить загрузку драгоценных камней из rubygems. Это значительно снижает зависимость от рубигемов.

В развертывании вы можете указать --local в bundler, чтобы полностью удалить всю зависимость от rubygems.org, но только если эти файлы отмечены в git.

Это ценно, потому что, хотя rubygems.org - фантастический сервис, он не защищен от сбоев. Без этих кешированных камней и сбоев на rubygems.org могло бы означать, что вы не сможете развертывать новые версии, перераспределять или масштабировать до новых машин, пока рубигемы не вернутся.

Существует также аргумент о том, что поставщик/кеш может использоваться как расширение Gemfile.lock, за исключением того, что дескрипторы развертывания являются бинарными, идентичными тем, которые используются в разработке, а не только идентичны версии.

Итак, по практическим соображениям, чтобы ваша способность функционировать как практическое, работающее приложение независимо от rubygems.org: сохраните их в своем репозитории git.