Как использовать филиал в вилке рельсов в проекте с Bundler

StackOverflow https://stackoverflow.com/questions/4043089

Вопрос

У меня есть вилка рельсы репо На Github, в котором у меня есть ветвь, основанная на рельса-2-3-стабильной ветке. Я хочу разработать некоторые изменения на основе рельсов 2.3.10 вместе с моим приложением. Мы используем Bundler, а приложение версию с SVN.

Какой самый чистый способ использовать мою ветку на вилке Github Rails и поделиться этим через машины?

Один из способов был бы это:

Как установить Edge Rails?

Что будет работать, но не чувствует себя достаточно чистыми, так как мы должны были бы обновить вендоренную версию вручную, когда репо изменяется, и нам придется проверить Git Repo в SVN.

Я пробовал вариации этого в Gemfile:

gem 'rails', '2.3.10', :git => 'git://github.com/traveliq/rails.git', :branch => 'tiq-fixes'
gem 'rails', '2.3.10', :git => 'git://github.com/traveliq/rails.git', :tag => 'v2.3.10'
gem 'rails', '2.3.10', :git => 'git://github.com/rails/rails.git', :tag => 'v2.3.10'

Все они изначально работают при работе bundle install, но при запуске приложения он не может найти рельсы в пути нагрузки:

/home/mt/development/Config/boot.rb:57:in `Требуется: нет такого файла для загрузки - инициализатор (LoadeRor) из /home/mt/development/config/boot.rb:57:in` load_initializer «От /home/mt/development/config/boot.rb:117:in 'run' из /home/mt/development/config/boot.rb:11:in` boot! ' Из /home/mt/development/Config/boot.rb:130 из скрипта / консоли: 2:

Мои записи Gemfile.lock подобны этому:

Git Remote: Git: ///github.com/traveliq/rails.git Редакция: 25139AC92CEA5B17791D71CEA59B17791D71359BC3AE2A5D526652 Филиал: Tiq-Fixes Specs: Rails (2.3.10) ... Зависимости ... Rails (= 2.3.10)!
Это было полезно?

Решение

Ответ Балуна указывал мне на нужный курс, но вот еще есть подробности:

Нужно было собраться вместе .GEMSPEC файлы для большинства драгоценных камней в рельсы REPO / 2-3-стабильные ветви - мой взять можно увидеть или разведать в http://github.com/traveliq/rails/commit/46d9042c9125Abdfc672f8523d81210f4f320.

Чтобы включить, что в детском положении, используйте:

git "git://github.com/traveliq/rails.git", :branch => 'tiq-fixes' do
  gem 'rails'
  gem 'actionmailer'
  gem 'actionpack'
  gem 'activerecord'
  gem 'activeresource'
  gem 'activesupport'
end

Обратите внимание, что вы не можете использовать «Railties», которые определяют только GEM Rails 'Gem.

Кстати, во время работы над этим было проще указать драгоценные данные в моем местном репо, который делается таким образом (рельсы, являющиеся папкой, в которой репо клонируется, уровень вниз с DEMFile):

gem 'rails',            :path => 'rails/railties'
gem 'actionmailer',     :path => 'rails/actionmailer'
gem 'actionpack',       :path => 'rails/actionpack'
gem 'activerecord',     :path => 'rails/activerecord'
gem 'activesupport',    :path => 'rails/activesupport'

После определения рельсов / каналов .GEMSPEC, вы также можете оставить некоторые из этих драгоценных камней и у Bundler используют нормально доступные версии от GemCutter и т. Д.

Другие советы

Похоже, на версии 2.3.10, рельсы не имели .gemspec файлов для его компонентов. Вместо этого каждый GemsPEC указывается в соответствующем рикефиле.

В противном случае вы бы использовали:

git "git://github.com/traveliq/rails.git", :branch => 'tiq-fixes', :tag => 'v2.3.10' do
  gem 'actionpack'
  gem 'activesupport'
  gem 'activerecord'
  gem 'activemodel'
  gem 'actionmailer'
  gem 'railties'
end

Дальнейшая ссылка: http://gembundler.com/git.html.

Редактировать: Это означает, что Bundler требует на месте Gemspec.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top