私はGitHubでオープンソースプロジェクトに取り組んでいます。
サブディレクトリ/ Vendorがあり、その中にいくつかの外部ライブラリのコピーがあります。プロジェクトの元のメンテナーは、このディレクトリを外部ライブラリの新しいコピーで時々更新しました。
1人の開発者が、このコピーをgit submoduleに置き換えるというアイデアのあるプルリクエストを送ってきました。
そして、それが良いアイデアかどうかを検討しています。
Gitサブモジュールの長所:
- サブモジュールは、同様のシナリオ用に特別に設計されました
- 次の更新中に上書きされるベンダーへの偶発的なコミットの可能性を削除します
Gitサブモジュールの短所:
- gitサブモジュールがメンテナーからプロジェクトをクローン/プルする人に複雑さを押し付けているようです(クローンを作成してプロジェクトの作業を開始するには、追加の手順が必要です: "git submodule init"、 "git submodule update"
これについてはどう思いますか?
もう一つ。この問題は、外部依存関係が非常に限られているかなり小さなサイズのライブラリです。今のところ、どんなビルドツールでもやり過ぎだと思います。
git clone --recursive
、サブモジュールコマンドを実行でき、実行する必要はありません。他の誰もこのちらつきを言及していません。私が知っているほとんどの人は、サブモジュールがREADMEでこれを宣伝しています。