2010-10-28 7 views
13

Tengo un tenedor del rails repo en github, en el que tengo una rama, basada en la rama Rails-2-3-stable . Deseo desarrollar algunos cambios basados ​​en Rails 2.3.10 junto con mi aplicación. Estamos usando bundler, y la aplicación está versionada con SVN.Cómo utilizar una rama en un tenedor de rieles en un proyecto con bundler

¿Cuál es la forma más limpia de usar mi bifurcación en la bifurcación de los rieles github y compartir esto en todas las máquinas?

Una forma sería la siguiente:

how do I install edge rails?

que funcionaría, pero no se siente lo suficientemente limpia, como tendríamos que actualizar la versión vendored manualmente cuando cambia de pase, y nosotros Tengo que verificar el git repo 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 que trabajan inicialmente 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 
entradas

Mi Gemfile.lock 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)! 

+0

¿Cómo es que Gemfile.lock? – shingara

+0

Actualicé la pregunta con extractos de Gemfile.lock –

Respuesta

17

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

Fue necesario improvisar archivos juntos .gemspec para la mayoría de las gemas en el rieles repo/2-3 rama 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 (rieles 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 bundler utilizan normalmente las versiones disponibles de Gemcutter etc.

6

Parece que en la versión 2.3.10 , los rieles no tienen archivos .gemspec para sus componentes. En su lugar, cada gemspec se especifica en el 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. respuesta

+0

Gracias por indicarme los documentos de git bundler, no sabía que había más que los documentos de "inicio".Sin embargo, sigo recibiendo este error: No se pudo encontrar gem 'actionpack (> = 0, runtime)' en git: //github.com/traveliq/rails.git (en tiq-fixes). La fuente no contiene ninguna versión de 'actionpack (> = 0, runtime)' –

+1

De acuerdo, entiendo que su respuesta significa: No es posible de fábrica con bundler and rails 2.3.x. Pero creo que podría agregar archivos .gemspec en mi rama en las dependencias? –

+0

Sí. Solo cópielo del Rakefile en el directorio gem. – balu

Cuestiones relacionadas