Pregunta

Tengo un tenedor de la carriles de recompra en github, en el que yo' ve consiguió una rama, sobre la base de la rama carriles-2-3-estable. Quiero desarrollar algunos cambios basados ??en los carriles 2.3.10 junto con mi aplicación. Estamos utilizando bundler, y la aplicación se versiona con SVN.

¿Cuál es la manera más limpia que usar mi rama en el tenedor github de rieles y compartir esto a través de las máquinas?

Una forma sería la siguiente:

cómo instalo canales del borde?

, que funcionaría, pero no se siente lo suficientemente limpia, ya que tendríamos que actualizar la versión vendored manualmente cuando cambia de pase, y nos gustaría tener que comprobar el repositorio git en SVN.

He intentado variaciones de este en el 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'

Todos los inicialmente el trabajo cuando se ejecuta bundle install, pero cuando se inicia la aplicación, que no puede encontrar los carriles en la vía de carga:

/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

Mi Gemfile.lock entradas son así:

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

...

DEPENDENCIES

...

rails (= 2.3.10)!

¿Fue útil?

Solución

La respuesta de Balu me señaló a la dirección correcta, pero aquí hay algunos detalles más:

Fue necesario improvisar archivos juntos .gemspec para la mayoría de las joyas de los carriles repo rama / 2-3-estable - mi toma puede ser visto o se bifurcó en http://github.com/traveliq/rails/commit/46d9042c9125abbbedfc672f8523d81210f4f320

Para incluir que en un Gemfile, utilice:

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

Tenga en cuenta que no se puede utilizar 'railties', que sólo define la gema 'rieles'.

Por cierto, mientras se trabaja en esto, que era mucho más fácil señalar el Gemfile en mi repo local, que se hace de esta manera (carriles siendo la carpeta donde se clona el repositorio, un nivel por debajo del 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'

Después de definir los raíles / railties .gemspec, también se puede dejar de lado algunas de esas joyas, y tienen uso bundler las versiones normalmente disponibles a partir de un tallador de gemas, etc.

Otros consejos

Se ve como en la versión 2.3.10, los carriles no tenían archivos .gemspec para sus componentes. En cambio, cada gemspec se especifica en la Rakefile correspondiente.

De lo contrario se debería utilizar:

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

Además referencia: http://gembundler.com/git.html

EDIT: Esto significa que bundler requiere un gemspec a estar en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top