3

管理したい一連の関連リポジトリがあります。

保存したいデータは、「ユニット」からなる「ライブラリ」からなる「プロジェクト」です。各ライブラリはプロジェクトのサブフォルダーに保存され、各ユニットはライブラリのサブフォルダーに保存されます。

複数のプロジェクト間でライブラリとユニットを再利用できるようにするために、次のスキームに従ってそれらを保存する予定です。

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プロジェクトで使用されているライブラリを相対的に参照し ( usesなど)、ライブラリ内のユニットも相対的に参照したいと思います。

ライブラリとユニットは、それらを含むプロジェクトを変更することによってのみ変更できます。そのため、ライブラリとユニットのリポジトリは、必要に応じてむき出しにすることができます。

サーバー上のリポジトリは同じように見える必要があります (フォルダーのレイアウトが同じ)。

私はすでにサブモジュールと「読み取りツリー/サブツリーのマージ」アプローチを使用しようとしましたが、サブモジュールの場合にリポジトリへの相対 URL を指定し、読み取りツリー アプローチで変更をプッシュする方法を見つけることができませんでした。

私が達成したいのは、project1 をチェックアウトすると、必要なすべてのライブラリとユニットもフェッチされ、プロジェクトを通じてライブラリまたはユニットを変更すると、これらの変更をサーバーに簡単にプッシュできるようになることです。

4

1 に答える 1

2

サブモジュールはあなたのために行く方法であり、相対URLを許可します。

サブモジュールは、スーパープロジェクトのURLに関連する別のサブモジュールURLを指定できますorigin。したがって、project1では、次を使用します

git submodule add ../library1
git submodule --init update

そして、それは問題ないはずです。library1はproject1のディレクトリでチェックアウトされ、元のリポジトリはproject1の隣にあります。

于 2012-04-23T08:58:55.517 に答える