我有一个通过capistrano从Git存储库进行的简单部署。起初我在部署form GitHub,一切都运行得很好。但是后来我把我的存储库移到了BitBucket上,现在我得到了
fatal: Could not parse object '9cfb...'.
一旦我改变了,这个问题就消失了
set :deploy_via, :remote_cache
至
set :deploy_via, :copy
但这并不能解决问题,它只是绕过了它。有什么方法可以让capistrano直接删除旧缓存吗?
发布于 2011-12-03 07:10:52
我不得不说我不确定,因为我还不能测试它,但这应该可以工作:
cap deploy:cleanup -s keep_releases=0
因为它清除了服务器上的每个版本(缓存)。
显然,您还需要删除shared/cached-copy
,因为根据下面的注释,上面的Capistrano调用似乎没有清除它。
发布于 2013-10-08 23:16:24
我在deploy.rb
中用以下方法解决了这个问题
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"
它使部署变得有点慢,所以一旦你觉得所有的部署目标都跟上了,就值得删除它。
发布于 2014-05-23 19:30:25
最简单的方法是在new服务器上的共享/缓存复制目录中的.git/config中将repo url更改为新的url。然后,您可以像往常一样进行正常部署。
https://stackoverflow.com/questions/8358238
复制相似问题