During the update_code task, we'll sometimes encounter network errors
when executing a git command (e.g. git submodule -q update). Instead
of detecting the failure and rolling back the transaction, Capistrano
continues and deploys with missing code.

For example (config. details at end of post):
 ** transaction: start
  * executing `deploy:update_code'
  * preparing local cache at ...
    executing locally: "git ls-remote .git iframe"
    executing locally: git clone -q .git <path> && cd <path> && git
checkout -q -b deploy <version> && git submodule -q init && git
submodule -q sync && git submodule -q update
Initialized empty Git repository in ...
fatal: The remote end hung up unexpectedly
Clone of 'git://github.com/thoughtbot/paperclip.git' into submodule
path 'vendor/plugins/paperclip' failed
  * copying cache to deployment staging area ...

In capistrano / lib / capistrano / recipes / deploy / strategy /
copy.rb (http://github.com/capistrano/capistrano/blob/master/lib/
capistrano/recipes/deploy/strategy/copy.rb), it looks like Ruby's
Kernel module system method is called, but the return code is not
checked to trigger a rollback if false.

Is this a bug that I should file a ticket on or am I'm missing
something? Thanks for your help.

Dave

Git Version: 1.5.4.3
Ruby Version: 1.8.6
deploy.rb:
  set :repository,    ".git"
  set :scm,           :git
  set :deploy_via,    :copy
  set :copy_cache,    true
  set :copy_strategy, :export
  set :use_sudo,      false
  set :branch,        "master"
  set :copy_exclude,  [".git", "*/.gitignore", ".gitignore"]
  set :git_enable_submodules, 1

-- 
* You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
* To post to this group, send email to [email protected]
* To unsubscribe from this group, send email to 
[email protected] For more options, visit this group at 
http://groups.google.com/group/capistrano?hl=en

Reply via email to