0

数か月前、「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

私のキャップファイル

load 'deploy'
load 'deploy/assets'
load 'config/deploy'

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
4

2 に答える 2

1

「バージョン管理されていないリソース」は、宛先フォルダーにバージョン管理されていないファイルがあり、Subversion がそれについて不平を言っているように聞こえます。

次のいずれか(またはすべて)を試してみます。

  • Mac とサーバーで「svn status」を実行して、バージョン管理されていないファイルをチェックする
  • Mac(およびおそらくサーバー)で「svn cleanup」を実行しています
  • capistrano コンソールを使用して capfile の手順を実行し、「svn checkout」手順を実行する直前にいくつかの調査 (「svn status」の実行など) を試してください。
  • 作成しようとしている宛先フォルダーのキャップ (/u/apps/myproject/releases/20130826010624) が存在するかどうかを再確認し、存在する場合は吹き飛ばします。

それでも解決しない場合は、Capfile を投稿してください。

于 2013-08-28T07:39:36.833 に答える