This plugin allows your Capistrano to deploy git repositories those have
multiple-level nested submodules in them.
By default Capistrano issues git submodule init && git submodule update
commands only at the repository root, those initializion first-level
submodules. But if those submodules has their own submodules, your application
will fail as they will stay uninitialized. This plugin fixes it and
automatically checks for all included submodules (and their submodules, and
their, etc) and initializes them, too.
Usage is very simple - just install this gem and add following requirement to
your deployment scenario:
require 'capistrano/deepmodules'
Also make sure that you're using remote cache to deploy your code as current
only remote cache strategy is supported:
set :deploy_via, :remote_cache
I see no reason not to use it, especially on large codebases with a lot of
submodules, so currently this plugin does not support other strategies. If
you need such support - drop me a note and I'll if it's plausible.
And you don't need to set :git_enable_submodules parameter in your scenario -
it doesn't affect operations if this plugin as it pays no attention to it.
If you want to disable submodules - just comment out 'require' line.