Как использовать ветку в вилке рельсов в проекте со связкой

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

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

Один из способов:

как установить рельсы?

который будет работать, но не чувствует себя достаточно чистым, так как нам придется обновлять версию поставщика вручную при изменении репо, и нам нужно будет проверить репозиторий git на 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 `require': no such file to load -- initializer (LoadError)
    from /home/mt/Development/config/boot.rb:57:in `load_initializer'
    from /home/mt/Development/config/boot.rb:117:in `run'
    from /home/mt/Development/config/boot.rb:11:in `boot!'
    from /home/mt/Development/config/boot.rb:130
    from script/console:2:in `re

Мои записи Gemfile.lock выглядят следующим образом:

GIT
  remote: git://github.com/traveliq/rails.git
  revision: 25139ac92cea5b17791d71359bc3ae2a5d526652
  branch: tiq-fixes
  specs:
    rails (2.3.10)

...

DEPENDENCIES

...

rails (= 2.3.10)!

Ответы

Ответ 1

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

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

Чтобы включить это в Gemfile, используйте:

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", который определяет только камень "rails".

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

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'

После определения рельсов /railties.gemspec вы также можете оставить некоторые из этих драгоценных камней, и у него есть обычные версии с gemcutter и т.д.

Ответ 2

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

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

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

EDIT: Это означает, что для связки требуется, чтобы gemspec был на месте.