我怎样才能继续将 Accurev 与 Capistrano 3 一起使用?
How can I continue to use Accurev with Capistrano 3?
我们使用 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
作为 Capistrano3 文档 says - 只有 git、hg 和 svn 支持。
但是将 old accurev module 从 Capistrano 2 移植到 Capistrano 3 应该不难。一些 类 改变了但核心是相同的 - 函数必须 return 正确的命令与适当的参数.
您可以从 master 的 git 实施开始并将其替换为 AccuRev。
一年以来我一直在使用的解决方法如下:
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
配置选项的拉取请求,但他们拒绝了,说他们将很快迁移到更好的东西 ...
我们使用 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
作为 Capistrano3 文档 says - 只有 git、hg 和 svn 支持。
但是将 old accurev module 从 Capistrano 2 移植到 Capistrano 3 应该不难。一些 类 改变了但核心是相同的 - 函数必须 return 正确的命令与适当的参数.
您可以从 master 的 git 实施开始并将其替换为 AccuRev。
一年以来我一直在使用的解决方法如下:
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
配置选项的拉取请求,但他们拒绝了,说他们将很快迁移到更好的东西 ...