Domanda

Ho un fork del rotaie repo su GitHub, in cui ho' ve ha ottenuto un ramo, basato sul ramo rotaie-2-3-stabile. Voglio sviluppare alcune modifiche basate su rotaie 2.3.10 insieme con la mia app. Stiamo usando bundler, e l'applicazione è di versione con SVN.

Qual è il modo più pulito di usare la mia filiale nella forcella github di rotaie e condividere questo attraverso macchine?

Un modo potrebbe essere questo:

come faccio a installare le rotaie bordo?

che avrebbe funzionato, ma non si sente abbastanza pulito, come avremmo dovuto aggiornare la versione vendored manualmente quando cambia pronti contro termine, e avremmo dovuto controllare il repo git in svn.

Ho provato varianti di questo nel 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'

Tutti quelli inizialmente lavoro durante l'esecuzione bundle install, ma quando si avvia l'applicazione, non riesce a trovare rotaie nel percorso di carico:

/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

Il mio voci Gemfile.lock sono come questo:

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

...

DEPENDENCIES

...

rails (= 2.3.10)!

È stato utile?

Soluzione

La risposta di Balu mi indicò la strada giusta, ma qui ci sono alcuni dettagli:

E 'stato necessario a mettere insieme i file .gemspec per la maggior parte delle gemme nelle guide Repo ramo / 2-3-stabile - il mio prendere può essere visto o biforcuta all'indirizzo http://github.com/traveliq/rails/commit/46d9042c9125abbbedfc672f8523d81210f4f320

Per includere che in un Gemfile, uso:

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

Si noti che non è possibile utilizzare 'railties', che solo definisce la gemma 'rotaie'.

Per inciso, mentre si lavora su questo, era modo più semplice per puntare il Gemfile al mio repo locale, che è fatto in questo modo (rotaie essendo la cartella in cui viene clonato il repo, un livello giù dal 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'

Dopo aver definito i binari / railties .gemspec, si potrebbe anche lasciare fuori alcune di quelle gemme, e usufruire bundler le versioni normalmente disponibili da Gemcutter etc.

Altri suggerimenti

appare come alla versione 2.3.10, le rotaie non hanno i file .gemspec per i suoi componenti. Invece, ogni gemspec è specificato nel corrispondente Rakefile.

In caso contrario, si può usare:

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

Ulteriori riferimenti: http://gembundler.com/git.html

EDIT: ciò significa che bundler richiede un gemspec essere a posto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top