ruby-on-rails – 如何在捆绑器的项目中使用一个分支的铁轨叉

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在捆绑器的项目中使用一个分支的铁轨叉前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 github上有一个 rails repo的分支,我有一个分支,基于rails-2-3稳定的分支.我想根据rails 2.3.10与我的应用程序一起开发一些更改.我们使用bundler,该应用程序使用SVN进行版本控制.

在rails的github fork中使用我的分支的最干净的方法是什么?

一种方式是:

how do I install edge rails?

这将工作,但不足够干净,因为我们必须在repo更改时手动更新所售的版本,我们必须检查git repo到svn.

我在Gemfile中尝试过这样的变体:

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

所有这些最初都在运行捆绑安装时工作,但是当启动应用程序时,它在加载路径中找不到rails:

/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)!

解决方法

巴鲁的回答让我指出了正确的路线,但这里还有一些细节:

有必要拼凑在一起.gemspec文件大多数宝石在轨道repo / 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’宝石.

顺便说一下,在这个工作的同时,在我的本地repo指向Gemfile是更容易的,这是通过这种方式完成的(rails是克隆了repo的文件夹,从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'

在定义rails / railties.gemspec之后,您也可以省略一些这些宝石,并且可以使用gemcutter等通常可用的版本.

猜你在找的Ruby相关文章