私はいくつかの依存関係を持つ2つの作業ツリーを持っています。私の知る限り、Gitのサブモジュールは、以下を適用します:Git submodule alternative?
- は(マスター)
- マスタリポジトリがスレーブ からすべての情報を複製し、それを使用して、各作業ツリーのサブディレクトリに各作業ツリー(スレーブ)のコピーを持っています
私はレポが大きくなっても構いませんが、コピーを持っていることは私には受け入れられません。コピーがリンクされるように、私はすべてのプロジェクトを再編成する必要があります。さらに、間違ったファイルの編集が容易に起こり、混乱を招く可能性があります。
- 各マスターの店、そのすべてのスレーブのリスト:
は、私は別の考えを持っています。
- マスターには他の情報は必要ありません。
- 各コミットがマスターになると、スレーブ内の "snapshot-commit"が作成されます。
- "スナップショットコミット"は作業ツリーの現在の状態のスナップショットです。インデックスの現在の状態は無視されます(コミットされていない変更をスローする前に "スナップショットコミット"を使用しています)。
- "スナップショット - コミット"は、名前がマスタ名から派生したブランチに収集されます。コミットメッセージには、マスタコミットのハッシュが含まれています。 (IMHO、これは何千ものタグによるフラッディングよりも優れています)
- チェックアウトは、スレーブへの再帰が必要な場合を除き、通常どおり動作します。
私が見ることができる唯一の問題は、以下の通りである:
- 奴隷でコミットが蓄積すると、マスターはもはや存在してコミットした場合でも削除されることはありません飽きません。
- マスターのコミットが自己完結型ではないため、マスターで参照されているコミットを削除できます。しかし、私はそれが事故によって起こる可能性はないと思うので、私はそれと一緒に暮らすことができます。
- 他のgitコマンドがこれをどのようにサポートしているか想像できません。しかし、再び、私はそれで生きることができます。
私は誰かが既にそれを実装しているかどうかを尋ねています(または悪い考えです)。
私の文章が間違っていたことを意味していますか?「マスターリポジトリは、すべての情報をスレーブから複製します」ということですか?それとも、 ?これはかなり可能ですが、私の主な関心事は、各マスターツリーに各スレーブツリーのコピーが存在することです(または、間違っていますか?)。 – maaartinus
@maaartinus:(特定の差分をチェックアウトするので)物理コピーがありますが、親リポジトリのすべての保持は、チェックアウトされたコミットへの参照です。 http://jp.stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC
@maaartinus:しかし、各親リポジトリはサブモジュールをチェックアウトします前記サブモジュールのいくつかのコピーがいつでも存在する。 – VonC