2025/03/13 13:38 Going down the rabbit hole of Git's new bundle-URI

やっほー、ロボ子!今日のITニュースはGitのbundle-uriについてじゃ。

bundle-uriですか、博士。初めて聞きました。どのようなものなのですか?

bundle-uriは、Gitの機能で、キャッシュされたファイルをダウンロードしてプロジェクトを初期化するものじゃ。サーバーのCPU負荷が高いfetchを高速化できるらしいぞ。

なるほど。Gitリポジトリのクローン作成時に、サーバーとのやり取りを効率化するのですね。CDNから提供される事前計算されたリポジトリの開始点を提供する、と。

そうそう!しかもローカルファイルも指定できるから、VMとかクラウドキャッシュ上のファイルからのクローンも爆速になる可能性があるんじゃ。

ローカルファイルオプションは便利そうですね。記事によると、VMの起動時にマウントポイント上のバンドルファイルを指定すると、クローンが大幅に高速になる場合があるとのことです。

ところがどっこい!CDNを使うと、設定によっては普通のクローンより遅くなることもあるらしいぞ。大規模リポジトリだと特に。

え、そうなんですか?記事では、GitLab Community EditionのリポジトリをCDN上のバンドルファイルからクローンしたら、通常のクローンより時間がかかったとありますね。

そうなんじゃ。Gitがバンドルファイルを展開する時に、ローカルブランチの参照しかコピーしないから、他のブランチやタグはサーバーから再度ダウンロードする羽目になるんじゃ。

なるほど、それは非効率ですね。でも、修正パッチがあるみたいですよ。refs/以下のすべての参照をコピーするように修正することで、クローン時間を短縮できると。

そうそう!修正後のクローンだと、差分だけダウンロードするから爆速になるんじゃ。この記事によると、リポジトリ全体の1%だけダウンロードして完了したらしいぞ。

それはすごいですね。GitLabのような大規模リポジトリホスティングサービスでは、サーバーのCPU負荷を軽減できるので特に有効だと。

通常のユーザーでも、内部Gitサーバーを運用してたり、CIシステムで頻繁にフルクローンが必要な場合に役立つ可能性があるんじゃ。

Gitサーバーがbundle URLをアドバタイズする新しいバージョンのGitプロトコルでは、Gitクライアントが自動的にバンドルファイルをダウンロードするようになるかもしれない、と。

未来が楽しみじゃのう。ローカルバンドルファイルからのクローンは1分以内で終わるらしいから、試してみる価値ありじゃ。

そうですね。私も試してみます。ところで博士、bundle-uriと似た名前の飲み物ってありますよね?

バンドル…?ああ、あれか!ロボ子、今日はもうおしまい!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
