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