首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在我更改存储库URL后,Capistrano部署失败

在我更改存储库URL后,Capistrano部署失败
EN

Stack Overflow用户
提问于 2011-12-02 23:01:47
回答 6查看 17.3K关注 0票数 75

我有一个通过capistrano从Git存储库进行的简单部署。起初我在部署form GitHub,一切都运行得很好。但是后来我把我的存储库移到了BitBucket上,现在我得到了

代码语言:javascript
复制
fatal: Could not parse object '9cfb...'.

一旦我改变了,这个问题就消失了

代码语言:javascript
复制
set :deploy_via, :remote_cache

代码语言:javascript
复制
set :deploy_via, :copy

但这并不能解决问题,它只是绕过了它。有什么方法可以让capistrano直接删除旧缓存吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-03 07:10:52

我不得不说我不确定,因为我还不能测试它,但这应该可以工作:

代码语言:javascript
复制
cap deploy:cleanup -s keep_releases=0

因为它清除了服务器上的每个版本(缓存)。

显然,您还需要删除shared/cached-copy,因为根据下面的注释,上面的Capistrano调用似乎没有清除它。

票数 45
EN

Stack Overflow用户

发布于 2013-10-08 23:16:24

我在deploy.rb中用以下方法解决了这个问题

代码语言:javascript
复制
namespace :deploy do
  task :cope_with_git_repo_relocation do
    run "if [ -d #{shared_path}/cached-copy ]; then cd #{shared_path}/cached-copy && git remote set-url origin #{repository}; else true; fi"
  end
end
before "deploy:update_code", "deploy:cope_with_git_repo_relocation"

它使部署变得有点慢,所以一旦你觉得所有的部署目标都跟上了,就值得删除它。

票数 6
EN

Stack Overflow用户

发布于 2014-05-23 19:30:25

最简单的方法是在new服务器上的共享/缓存复制目录中的.git/config中将repo url更改为新的url。然后,您可以像往常一样进行正常部署。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8358238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档