管理したい関連するリポジトリがあります。Gitで関連するリポジトリのセットを管理する
私が保存したいデータは、「ユニット」からなる「ライブラリ」で構成される「プロジェクト」です。 各ライブラリはプロジェクトのサブフォルダに格納され、各ユニットはライブラリのサブフォルダに格納されます。
私はこの方式に応じてそれらを格納することを計画し、いくつかのプロジェクト間でのライブラリとのユニットを再利用できるようにするには:
repositories/projects/project1
repositories/projects/project2>
repositories/projects/project...
repositories/libraries/library1
repositories/libraries/library2
repositories/libraries/library...
repositories/units/unit1
repositories/units/unit2
repositories/units/unit...
私は比較的プロジェクトで使用するライブラリを参照したいと思います(たとえば../../libraries/library1
を使用しています)ライブラリ内のユニットを相対的に参照することもできます。
ライブラリとユニットは、それらを含むプロジェクトを変更することによってのみ変更できます。したがって、ライブラリとユニットリポジトリが必要な場合は、裸になる可能性があります。
サーバー上のリポジトリは同じに見えるはずです(同じフォルダのレイアウト)。
私は既にサブモジュールと "read-tree/subtree merge"アプローチを使ってみましたが、サブモジュールのケースでリポジトリへの相対URLを指定したり、read-treeアプローチで変更をプッシュする方法を見つけることができませんでした。
私がproject1をチェックアウトすると、必要なすべてのライブラリとユニットも取得されます。プロジェクトを通してライブラリやユニットを変更すると、これらの変更を簡単にサーバーに再度プッシュすることができます。
私はそれが正しいことを確かめるために。 誰かがプロジェクトをクローンすると、サブモジュールの起源はローカルクローンになります。つまり、相対URLのクローン作成は相対的なままですか? – Onur
プロジェクトがクローンされている場所によって異なりますが、project1用に指定されたサブモジュールURLは依然として中央リポジトリからの相対パスであるため、すべてのユーザーが中央リポジトリからクローンを作成しても問題ありません。同僚のレポからクローンを作成する場合は、「原点」を中央のレポに手動で設定する必要があります – CharlesB