【问题标题】:How can I continue to use Accurev with Capistrano 3?如何继续使用 Accurev 和 Capistrano 3?
【发布时间】:2015-01-07 16:19:41
【问题描述】:

我们使用 AccuRev(我无法更改)并且一直在使用 Capistrano 2 进行部署。我需要升级到 Capistrano 3,但似乎 Accurev SCM 模块已被删除。有什么方法可以让我继续使用 AccuRev 并使用 Capistrano 3 进行部署?

deploy.rb 片段

set :scm, :accurev

部署错误

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

【问题讨论】:

    标签: ruby-on-rails capistrano capistrano3 accurev


    【解决方案1】:

    作为 Capistrano3 文档 says - 只有 git、hg 和 svn 支持。

    但是将old accurev module 从 Capistrano 2 移植到 Capistrano 3 应该不是那么难。一些类发生了变化,但核心是相同的 - 函数必须返回带有正确参数的正确命令。

    您可以从master 的 git 实现开始,并将其替换为 AccuRev。

    【讨论】:

      【解决方案2】:

      我使用一年以来的解决方法如下:

      1- 编辑文件 capistrano-3.3.5/lib/capistrano/setup.rb 并替换

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

      通过

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

      2- 添加到您的 config/deploy.rb 文件中

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

      这将使 capistrano 有机会打开 accurev 的配置模式。请注意 capistrano v3 更改了它的语法,您可能需要修改 accurev 文件(我建议将它们复制到您的 lib 文件夹中)。

      直接编辑gem文件内容很难看,但是这里没有别的办法。如果你愿意,你也可以 fork 他们的 git 并在你的 fork 上进行修改。

      我有类似的问题,因为我在 capistrano 中使用定制的 scm。自去年以来一直试图让他们接受拉取请求以添加此 scm_path 配置选项,但他们拒绝了,并表示他们将很快迁移到更好的东西......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2014-01-28
        相关资源
        最近更新 更多