モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

gitのsubmodule addが絶対パスで設定されてしまう問題

CakePHPプラグインの導入にgit submoduleを使って入れているのですが、そうやって作った環境をzipで固めて他の人に渡すと、gitでエラーが出てしまいました。
調べて見るとsubmoduleの設定内容の一部(configのworktreeのパスなど)が絶対パスで書かれていたため、他の環境にそのまま持って行くとパスが合わないためエラーとなってしまっていました。
自分は、CygwinとUbuntu12のgitで試したのですが、どちらも1.7.9で、どちらも同様に絶対パスになりました。


それで色々とぐぐってみてもあまりこのことについて書いている人がいなくて… でもなんとかそれっぽいものを見つけました。


Git submodule absolute worktree path config - Stack Overflow
http://stackoverflow.com/questions/8925564/git-submodule-absolute-worktree-path-config


これによると、1.7.10では大丈夫だったよ、とのこと。
でもここでも書かれているように、1.7.9→1.7.10のリリースノート見てもsubmoduleのパスのことについてはなにも書かれていませんでした。


そこで、gitでgitのgitリポジトリを落としてきて、最新のgit-1.8.3.1をmake installして試してみました。
1.8だとなにもしなくてもちゃんとsubmoduleも相対パスで設定してくれました。


というわけで、submoduleを使う場合には最新の1.8系を使うのがベターなように思います。