2009-06-15 8 views
3

git submodule updateを存続するディレクトリリンクを作成するにはどうすればよいですか?git submodules:ln -s

次の例のディレクトリ構造を考える:

:次のディレクトリ構造を作成

[email protected]:~/proj/lib$ ln -s ../lib3/submod/lib submodlib 

:私は、次のコマンドのようなものを使用してproj/lib/からproj/lib3/submod/libにソフトリンクを作成し

proj 
|-- lib3 
| `-- submod 
|  `-- lib 
`-- lib 

proj 
|-- lib3 
| `-- submod 
|  `-- lib 
`-- lib 
    `-- submodlib 

ただし、runn git submodule updateは私のリンクを破壊します。私は、ソフトリンクが相対パスへの論理リンクであるという印象を受けていました。そのため、オブジェクトを削除して再追加すると、リンクがそのまま維持されます。どのようにして効果を達成できますか?

答えて

1

ln -sで作成されたソフトリンクは、意図したとおりに動作するはずです。あなたが理解しているように、gitサブモジュール更新ディレクトリの一部proj/lib3/submod/libが削除されて再作成されます。つまり、手動でrm proj/lib3/submodを実行してからmkdir -p proj/lib3/submod/libを手動で実行するよりも違いはありません。

openSUSE Linuxのインストールでこれを手動でテストしましたが(rmとmkdir)、ディレクトリ構造を再作成してもソフトリンクは正常です。

どのOS環境で動作しますか?おそらく、それは真のソフトリンクではないでしょう。

+0

これは非常に良い点です。私はLinuxのコピーを持っていないとCygwinからシェルすることがありますが、私はほとんどの場合、Kubuntu linuxを使っています。私はこれをもう一度試してみて、私がLinuxでやっていることを確認します。ありがとう! – brad