SVN に対する GIT のパフォーマンス テストでは、GIT が SVN よりも明らかに高速であることがわかりました。プロジェクトのサイズが大きくなった (バージョンが増えた) 場合でもパフォーマンスが維持されるかどうかを確認するために、45K のコミットで Perl プロジェクトをフォークし、サーバーに保存しました。最新バージョンだけで別のレポを作成しました。最初のリポジトリは約 140 秒で複製され、2 つ目のリポジトリはコミットが 1 つだけで約 19 秒で複製されました。これは少し心配です。履歴が残ると、SVN よりも優れたパフォーマンスが失われます。この結論は正しいでしょうか?
また、私はここで、巨大なリポジトリと多数のバイナリ ファイルを使用した GIT のパフォーマンスに関する懸念を表明する多くの投稿/ブログを読みました。これらの投稿は少なくとも 1 年前のものなので、これはまだ GIT の問題だと思いますか?
はい、これらの欠点を回避する 1 つの方法は、浅いクローンを使用することです。--depth 1 を使用した浅いクローンは、コミットが 1 つだけのリポジトリからのクローンとほぼ同じ時間がかかります。しかし、shallow clone の man ページでは制限について説明しています。「指定されたリビジョン数に切り捨てられた履歴を持つ浅いクローンを作成します。浅いリポジトリには多くの制限があります (クローンしたりフェッチしたり、そこからプッシュしたりすることはできません)、単に興味がある場合は十分です。長い歴史を持つ大規模なプロジェクトの最近の履歴であり、パッチとして修正を送信したいと考えています。」これは本当に制限ですか、それともドキュメントが最新ではありませんか? テストリポジトリでテストしましたが、中央リポジトリにプッシュできるようです。