this recent threadによると、カピストラーノは、initのことができるようにし、あなたのサブモジュールを更新する必要があります:あなたの.gitmodules
エントリが最新である場合のconfig/deploy.rbで
set :git_enable_submodules,1
は、十分なはずです。
サブモジュールが確実に含まれるようにするには、to patch Capistrano (lib/capistano/recipes/deploy/scm/git.rb
)が必要な場合があります。
def checkout(revision, destination)
git = command
branch = head
fail "No branch specified, use for example 'set :branch, \"origin/master\"' in your deploy.rb" unless branch
if depth = configuration[:git_shallow_clone]
execute = "#{git} clone --depth #{depth} #{configuration[:repository]} #{destination} && "
else
execute = "#{git} clone #{configuration[:repository]} #{destination} && "
end
execute += "cd #{destination} && #{git} checkout -b deploy #{branch}"
if submodules = configuration[:git_enable_submodules]
execute += " && git-submodule init &&"
execute += "git-submodule update"
end
execute
end
あなたはnested submodulesを持っている場合は、次のものが必要です:
gem sources -a http://gems.github.com
$ sudo gem install morhekil-capistrano-deepmodules
はちょうどあなたの展開の設定でそれを必要とします。
は 'カピストラーノ/ deepmodules'
が必要です
宝石は残りの部分を自動的に処理します。
あなたの設定から:git_enable_submodules
を削除することができます。宝石はそれには何の注意も払っていません。あなたがそれを要求しているなら、あなたはすでにサブモジュールを有効にしたいと言っています。
さらに注目すべきもう1つの詳細 - 現時点では、リモートキャッシュ戦略だけが宝石によってサポートされています。それはあなたのconfig
次の行に追加しなければならないことを意味します
set :deploy_via, :remote_cache
これは、リモート・キャッシュを有効にし、それは本当にあなたがとにかくやりたいことだ - サブモジュール及びその他の多くの大規模なコードベースを展開あなたがサーバー側のキャッシュを持っていなければ、物事は本当に面倒な経験です。それ自身の上