4

2 番目のリポジトリ (B) で再利用する必要があるライブラリ コードを含む git リポジトリ (A) があります。

私の理解では、git サブモジュールでは、リポジトリ内の特定のパスのみをインポートすることはできず、リポジトリ全体をインポートする必要があります。これは正しいです?

このため、私の問題には 2 つの解決策があります。

  1. A と B を別々のリポジトリとして持ち、B から A のライブラリ ディレクトリへのシンボリック リンクを追加します。
  2. ライブラリを使用して新しい git リポジトリ C を追加し、A と B にサブモジュールとしてインポートします。

2 番目のアプローチの利点は何ですか? 小さなライブラリに別のリポジトリを追加するのはやり過ぎで、プロジェクトのメンテナンスに不必要な負担がかかる可能性があるように私には思えます。私の問題を解決するためのより良い方法はありますか?

4

1 に答える 1

6

主なアイデアは、ビルドの再現性です。特定の時間にビルドに使用したものの正確な構成 (つまり、ラベルまたは SHA1 の正確なリスト) の一部を復元する機能です。

そのコンテキスト(ビルドを再現する機能)では、サブモジュール(およびソリューション2)は、シンボリックリンク(特定のバージョンを参照せずにディレクトリコンテンツへのショートカット)よりも望ましいです。

もう 1 つの方法は、ライブラリをソース管理システムの外部Nexusなどのアーティファクト リポジトリに外部化し、フェッチするライブラリの適切なバージョンへの参照のみをプロジェクトに残すことです。

于 2012-10-02T08:48:33.023 に答える