4

問題文

これまでは、コードベース全体に誰もがアクセスできました。ここで、人々が作業するモジュールのコードのみを取得するように強制する必要があります。他のモジュールについては、lib のようにライブラリを取得します。現在2つのモジュールがあると仮定します

thinkbot (ヘッド)

-> assemblebot (ツリー/サブディレクトリ)

 -> include

 -> source

 -> lib

 -> obj

-> vpl (ツリー/サブディレクトリ)

 -> include

 -> source

 -> lib

 -> obj

-> 含める

-> ソース -> ビン`

誰かが vpl モジュールで作業している場合、コードを含むインクルードとソース フォルダーを取得し、assemblybot モジュールから lib を取得します。したがって、彼が変更を加えて HEAD からコンパイルすると、彼からうまくいくでしょう。

皆さん、これを Git に実装するにはどうすればよいですか? 何を読むべきかについての指針 コマンド スニペットは素晴らしいでしょうか?

4

1 に答える 1

8

現時点で考えられる唯一の方法は、submodulesを使用することです。2 つのモジュール (assemblybot、vpl) はそれぞれサブモジュールになり、ツリーの残りの部分はスーパー プロジェクトになります。

これは基本的に、2 つのモジュールを別々のリポジトリに配置し、次にマスター リポジトリに配置する必要があることを意味しますgit submodule init git://foo.com/assemblebot.git

これが全体的に努力する価値があるかどうかはわかりません。それは git の強みの 1 つではありません (実際、私が改善が必要だと思う唯一の点です)。

部分的なチェックアウトのサポートが改善されています (ナロークローンとスパースクローン)。

編集: vpl と assemblebot が include と source に依存していることを考慮すると、おそらく include と source を vpl と assemblebot リポジトリのサブモジュールとして持つ方がよいでしょう。ただし、これらは個別のプロジェクトではなく、git が行うのはプロジェクト コンテンツの追跡です。これらのモジュールを実際に分離する必要がある理由がわかりません。たぶん、開発者に他のコードに触れないように言うだけですか?

于 2009-02-17T12:37:44.160 に答える