Capistrano在deploy.rb更改为new repo后寻找旧的Github repo
最近,我在Github上从事的一个项目更改了源存储库 deploy.rb已更新为正确指向新的github帐户,但当我运行Capistrano在deploy.rb更改为new repo后寻找旧的Github repo,git,github,capistrano,Git,Github,Capistrano,最近,我在Github上从事的一个项目更改了源存储库 deploy.rb已更新为正确指向新的github帐户,但当我运行cap staging deploy时,它会查找旧的repo cap staging deploy * executing `staging' * executing `deploy' * executing `deploy:updatify' * executing "cd /home/deploy/example/curren
cap staging deploy
时,它会查找旧的repo
cap staging deploy
* executing `staging'
* executing `deploy'
* executing `deploy:updatify'
* executing "cd /home/deploy/example/current; git fetch origin; git reset --hard origin/staging"
servers: ["example.com"]
Password:
[example.com] executing command
** [out :: example.com] ERROR: oldusername/example.git doesn't exist. Did you enter it correctly?
** [out :: example.com] fatal: The remote end hung up unexpectedly
** [out :: example.com] HEAD is now at 7c92a69 adding changes
command finished in 4148ms
triggering after callbacks for `deploy:updatify'
* executing `bundle:install'
* executing "cd /home/deploy/example/current && bundle install --gemfile /home/deploy/example/current/Gemfile --path /home/deploy/example/shared/bundle --deployment --quiet --without development test"
servers: ["example.com"]
[example.com] executing command
command finished in 7442ms
* executing `deploy:restart'
* executing "cd /home/deploy/example/current; [ -f tmp/pids/unicorn.pid ] && kill -USR2 `cat tmp/pids/unicorn.pid` || bundle exec unicorn_rails -c ./config/unicorn.rb -E staging -D"
servers: ["example.com"]
[example.com] executing command
command finished in 94ms
我试图查找此处提到的缓存副本目录:但在我的服务器上,没有缓存副本目录
它还在哪里引用旧存储库
deploy.rb:
require 'bundler/capistrano'
load 'config/deploy/nginx'
load 'config/deploy/unicorn'
load 'config/deploy/updatify'
# Base Settings ############################################################
set :user, 'deploy'
set :application, 'example'
set :use_sudo, false
set :scm, :git
set :repository, 'git@github.com:new_repo_user/example.git'
set :deploy_to, "/home/#{user}/#{application}"
# Fake using releases to just use git
set :current_release, current_path
ssh_options[:paranoid] = false
default_run_options[:pty] = true
# Multistage ############################################################### ###
task :production do
server 'exampleprod.com', :app, :web, :db, :primary => true
set :branch, 'origin/production'
set :environment, 'production'
set :environment_database, defer { production_database }
set :environment_dbhost, defer { production_dbhost }
end
task :staging do
server 'example.com', :app, :web, :db, :primary => true
set :branch, 'origin/staging'
set :environment, 'staging'
set :environment_database, defer { environment_info["database"] }
set :environment_dbhost, defer { environment_info["host"] }
end
原来在
.git/config
文件中仍然有对原始存储库的引用
我改变了这一点:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:oldusername/example.git
为此:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:new_repo_user/example.git
Capistrano开始做正确的事情。在更改存储库组后,我遇到了类似的问题。
事实证明,从服务器上删除repo目录修复了旧repo版本引用的问题。请注意,这需要在服务器上当前的
文件夹中完成。为我工作。还请注意,从Capistrano 3开始,您需要编辑app_root/repo目录中的配置文件,而不是符号链接的当前目录。而不是从服务器中删除repo
目录,您可以将cd
放入其中并运行git remote set url origingit@github.com:new_repo_user/example.git
,这也将解决问题。就记录而言,此repo
目录与releases
目录位于同一目录中