Как я могу продолжать использовать Accurev с Capistrano 3?


Мы используем AccuRev (и я не могу изменить это) и развертываем с Capistrano 2. Мне нужно перейти на Capistrano 3, но, похоже, модуль Accurev SCM был удален. Есть ли способ, которым я могу продолжать использовать AccuRev и развертывать с Capistrano 3?

Развернуть.RB piece

set :scm, :accurev

Ошибка развертывания

cap aborted!
LoadError: cannot load such file -- capistrano/accurev.rb
2 3

2 ответа:

В качестве документации Capistrano3 , - говорит - существует только в Git, HG и поддержки СВН.

Но не должно быть так трудно перенести старый accurev модуль из Capistrano 2 в Capistrano 3. Некоторые классы изменились, но ядро осталось прежним-функции должны возвращать правильные команды с правильными параметрами.

Вы можете начать с реализации git изmaster и заменить его AccuRev.

Обходной путь, который я использую с одного года, следующий:

1- отредактируйте файл capistrano-3.3.5 / lib / capistrano / setup.rb и заменить

load "capistrano/#{fetch(:scm)}.rb"

By

load "#{fetch(:scm_path, 'capistrano')}/#{fetch(:scm)}.rb"

2- Добавьте в свой config / deploy.файл rb

set :scm_path, 'path/to/accurev/directory'

Это даст Капистрано возможность открыть схему конфигурации accurev. Обратите внимание, что capistrano v3 изменил свой синтаксис, и вам, возможно, придется изменить accurev файлы (я предлагаю затем дублировать их в вашем lib папка).

Некрасиво редактировать содержимое файла gem напрямую, но другого способа здесь нет. Вы также можете развилить их ГИТ и сделать модификацию на вашей вилке, если хотите.

У меня есть аналогичная проблема, потому что я использую изготовленный на заказ scm в capistrano. Пытался заставить их принять запрос на добавление этой опции конфигурации scm_path с прошлого года, но они отказываются, говоря, что скоро перейдут на что-то лучшее ...