0

Мой набор Rails 4.2 приложений и драгоценных камней в настоящее время обновляется до Rails 5. Есть ли способ поддерживать 2 отдельных Gemfiles и Gemfiles - один для Rails 4.2 и еще один для Rails 5, и отбрасывать это на git, поэтому несколько человек может работать с приложениями в Rails 4.2 и Rails 5?Как сохранить 2 версии Rails для проекта, перемещающегося в Rails 5?

+0

by «как в Rails 4.2, так и в Rails 5» означает ли вы, что любой человек может находиться в обоих одновременно? Я не знаю, извините. Однако, если вы просто имеете в виду, что некоторые люди работают в версии Rails 4.2 и другие в версии Rails 5, я бы предложил использовать ветки git. – jaydel

+0

Метод, описанный в [этом блоге] (http://bytes.babbel.com/en/articles/2015-12-14-rails-4-upgrade.html), очень хорошо работал для нас. – spickermann

ответ

1

Обычный ответ - ветви. Я предполагаю, что у вас есть набор драгоценных камней, которые находятся в разработке и обновлении, и один или несколько «основных проектов», которые зависят от этих драгоценных камней, также как в активной разработке, так и в обновлении.

Так что для драгоценных камней, разрабатывая рельсы 5 версии, у вас может быть ветка master и ветка rails-4. Мастер, будучи краем кровотечения, получает повышенный уровень. Новая функция разработки может быть выполнена в rails-4 и регулярно слита в master.

Затем, в ваших основных проектах, вы делаете то же самое. Перед тем как создать новую ветвь, вы можете указать в Gemfiles ваших основных проектов, что они должны использовать определенную ветвь, например:

gem 'mygem', :git => 'https://github.com/my/gem.git', :branch => 'rails-4' 

Тогда ваши основные проекты могут создавать свои собственные рельсы-4 филиала. На главном сервере вы повторно отредактируете свой Gemfile, чтобы вернуть его, указав мастер.

Опять же, новая функция развития может продолжаться в ветке рельсов-4 и быть объединена в мастер, пока мастер не будет готов к производству. После того, как вы отправили рельсы 5 версий, и все довольны, ветвь rails-4 может быть удалена.


[Изменить]: Если по какой-либо причине, вы непрочь GIT ветви, я видел растущую тенденцию библиотеки писателей добавляющих «/ gemfiles» папку для своих проектов.

Мое предложение состояло в том, чтобы заполнить эту папку всеми различными версиями Gemfiles в вашем проекте, а затем удалить Gemfile из корня, используя git rm Gemfile. Также добавьте строки /Gemfile и /Gemfile.lock к вашему .gitignore. Зафиксируйте это изменение.

Затем, когда новый разработчик проверяет ваше репо, им необходимо связать с Gemfile, который они хотят использовать. После ссылки на файл, который они хотят, например. ln -s gemfiles/Gemfile-rails-4 Gemfile они должны иметь возможность запускать bundle install

Следует отметить, что я никогда раньше этого не делал - но это была бы общая стратегия. Разветвление будет по-прежнему рекомендовано в общем случае - таким образом, вы избегаете условных выражений в своем коде и избегаете остаточной «рывки» из процесса обновления.

+0

Я стараюсь не разделить отдельные ветви, если это возможно, но несколько разных наборов Gemfiles/или использовать RVM – absessive

Смежные вопросы