加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:43:26 所属栏目:百科 来源:网络整理
导读:我在 github上有一个 rails repo的分支,我有一个分支,基于rails-2-3稳定的分支.我想根据rails 2.3.10与我的应用程序一起开发一些更改.我们使用bundler,该应用程序使用SVN进行版本控制. 在rails的github fork中使用我的分支的最干净的方法是什么? 一种方式是
我在 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等通常可用的版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读