几个月前,我曾经使用“cap deploy”命令从我的ubuntu PC 部署我的项目,没有问题。但是,我在几分钟前尝试从我的mac部署相同的项目,但 svn 命令失败(见下文)
executing locally: "svn info https://xxxx.jp/svn/xxx_iphone/trunk --username \"xxxx\"--password \"xxx\"--no-auth-cache -rHEAD"
如您所见, [username],[password] 和 [no-auth-cache] 被粘贴(没有空格)。
在ubuntu下,我得到了这个命令(就是正常执行的)
executing locally: "svn info https://xxxx.jp/svn/xxx_iphone/trunk --username xxxx --password xxx --no-auth-cache -rHEAD"
Ruby 版本:2.0.0p0 Rails 版本:4.0.0
有任何想法吗 ?谢谢你
==编辑
日志信息:
$ bundle exe cap production deploy
triggering load callbacks
* 2013-08-26 10:06:14 10:06:14 == Currently executing `production'
production Do you really deploy? (yes/no)
yes
triggering start callbacks for `deploy'
* 2013-08-26 10:06:16 10:06:16 == Currently executing `multistage:ensure'
* 2013-08-26 10:06:16 10:06:16 == Currently executing `deploy'
* 2013-08-26 10:06:16 10:06:16 == Currently executing `deploy:update'
** transaction: start
* 2013-08-26 10:06:16 10:06:16 == Currently executing `deploy:update_code'
executing locally: "svn info https://xxxxxxx/svn/myproject/trunk --username \"xxxxx\"--password \"zzzzz\"--no-auth-cache -rHEAD"
Authentication realm: <https://xxxxx> Authorization
Password for 'xxxxx--password':
Authentication realm: <https://xxxxxx> Authorization
Username: xxxx
Password for 'xxxx':
zzzzzz--no-auth-cache: (Not a versioned resource)
svn: A problem occurred; see other errors for details
*** [deploy:update_code] rolling back
* executing "rm -rf /u/apps/myproject/releases/20130826010624; true"
servers: ["iphone.xxxxx.jp"]
Password:
[iphone.xxx.jp] executing command
command finished in 709ms
Command svn info https://xxxxx/svn/myproject/trunk --username "xxxx"--password "zzzz"--no-auth-cache -rHEAD returned status code pid 448 exit 1
我的 Capfile
load 'deploy'
load 'deploy/assets'
load 'config/deploy'
部署.rb
require "capistrano/ext/multistage"
require "capistrano_colors"
require "bundler/capistrano"
require "rvm/capistrano" # Load RVM"s capistrano plugin.
set :application, "mygirl"
set :copy_exclude, %w(.git .gitignore doc features log spec test tmp Capfile)
#set :shared_children, shared_children + %w(public/uploads)
set :use_sudo, false
set :user, "app"
set :stages, %w(staging production)
namespace :deploy do
task :start, roles: :app, except: { no_release: true } do
run "cd #{current_path} && bundle exec unicorn_rails -c config/unicorn.rb -E #{rails_env} -D"
end
task :stop, roles: :app, except: { no_release: true } do
run "kill -KILL -s QUIT `cat #{shared_path}/pids/unicorn.pid`"
end
task :restart, roles: :app, except: { no_release: true } do
stop
start
end
end
namespace :customs do
namespace :rake do
desc "Run a task on a remote server."
# run like: cap staging customs:rake:invoke task='db:version'
task :invoke, :roles => :db do
run("cd #{current_path}; BUNDLE_GEMFILE=#{current_path}/Gemfile bundle exec rake #{ENV['task']} RAILS_ENV=#{rails_env}")
end
end
end
def confirm
puts "\n\e[0;36m#{stage}\e[0m\e[0;31m Do you really deploy? (yes/no) \e[0m\n"
proceed = STDIN.gets rescue nil
exit unless proceed.chomp! == "yes"
end