私たちはgitに移行しています。私たちは製品を構成する多数のモジュールを持っていますが、そのうちのいくつかは製品間で共有されています。唯一のサブモジュールが含まれます。製品は、「薄い」スーパーリポジトリ(//server/product.git SSH):で表されるサブモジュールとnティアの使用方法リポジトリ戦略
[submodule "module1"]
path=module1
url=ssh://server/product/module1.git
[submodule "module2"]
path=module2
url=ssh://server/product/module2.git
...
が、私はスーパーのリポジトリのクローンを作成し、サブモジュールで動作し、それらをコミットすることができ、およびサブモジュールをスーパーリポジトリにコミットします。
別の層を導入したいときに問題が発生します。 2つの基本的なシナリオ(これは、より複雑な設定をするために組み合わせることができますが、何がこれらの組み合わせでなければなりません)があります。開発者として
が、私は中央リポジトリと作業のクローンを作成します。次に、変更をセントラルリポジトリにマージする前に、私のコードを継続的インテグレーションサーバに提出したいと思います。私はCIサーバーが私のレポをクローンにさせました。これはうまくいかないので、CIサーバはスーパーリポジトリをクローンし、サブモジュールを中央のリポジトリの場所からクローンします(gitmodulesの中にあるのでそれです)。
私たちが前に働いていた統合リポジトリをチームにまとめるには、スプリントの終わりにコードを中央リポジトリにマージします。これは同じ理由で失敗します。
Iはサブモジュールのための相対URLを指定しようとしたが、これは動作しない、のいずれかで、我々は、3段目に第二層をクローニングするとき、相対URLが第二層のリポジトリ位置に対する解決するため、しかし第2層サブモジュール位置は、第2層スーパーリポジトリ内にある。
私はそれを両方とも持ちますか? Gitサブモジュールとn層リポジトリ構造
解決方法を見る:http://stackoverflow.com/questions/6031494/git-submodules-and-ssh-access – Cybot