CapistarnoでCakePHPアプリをデプロイしているのですが、Cake自体のライブラリはサブモジュール化して取得する構成にしています。
その際に困ったことが1つありまして・・・
git submodule updateしてもgit submodule initした時点のコミットにしか追従してくれません。
git submodule addしてるリポジトリ(例えば.vim/vundleとか)をgithubなどのリモートの最新に追従するにはgit submodule foreach git pull origin masterを実行します。
git submoduleしてるリポジトリをリモートの最新に更新する - Qiita
initした時の状態しか持ってこないから、最新版のHEADを取得するにはpullしろってことらしい。まぁ、わからなくもないが・・・updateでpullってくればいいじゃんって思うのは僕だけかなw
で、Capistarano2.xだとgit_enable_submodulesというパラメーターはあるけど、updateするだけでpullしてはくれないので、ちょっとだけコマンドを書きなおす必要があった。
#capistrano-2.15.5/lib/capistrano/recipes/deploy/scm/git.rb #152行目ぐらい if variable(:git_enable_submodules) execute << "#{git} submodule #{verbose} init" execute << "#{git} submodule #{verbose} sync" #この行を追加する execute << "#{git} submodule foreach git pull origin master"
いじょ。