Як отримати конкретну "фіксацію" дорогоцінного каміння з github?


155

Я використовую rails_admin , і оскільки він перебуває у (дуже) активному розвитку, помилки з'являються раз у раз.

Наскільки я не можу сказати, для версії gemub немає версій, тому я не можу використовувати :versionключ для декларації про дорогоцінний камінь у Gemfile.

Чи є спосіб я "прив'язати" конкретну команду (що, наскільки я знаю, добре працює для мене) до Gemfile?

Наразі у мене є свій Gemfile:

gem 'rails_admin', 
  :git => 'git://github.com/sferik/rails_admin.git'

Я хотів би мати можливість зробити щось подібне (приклад "commit_id"):

gem 'rails_admin', 
  :git => 'git://github.com/sferik/rails_admin.git',
  :commit_id => "4e7d53e3c5c4c3c5c43c3"

Чи можливо це зробити з github?

Відповіді:


271

Будь-який із них повинен працювати:

gem 'rails', :git => 'git://github.com/rails/rails.git', :ref => '4aded'

gem 'rails', :git => 'git://github.com/rails/rails.git', :branch => '2-3-stable'

gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v2.3.5'

Джерело: Як встановити дорогоцінні камені із сховищ git


1
Просто тому, що всі вони (і .git/HEAD) є рефісками в git :). Більше: git-scm.com/book/en/v2/Git-Internals-Git-References
medik

63

Більш коротка версія:

gem 'rails', :github => 'rails/rails', :ref => '4aded'

Або в Ruby 1.9+

gem 'rails', github: 'rails/rails', ref: '4aded'

І встановивши джерело github за замовчуванням https з цим:git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end
Доріан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.