日本語 ▾ トピック ▾ 最新バージョン ▾ git-backfill は 2.49.0 で最終更新されました

名前

git-backfill - 部分クローンで不足しているオブジェクトをダウンロードする

概要

git backfill [--min-batch-size=<n>] [--[no-]sparse]

説明

ブロブなしの部分クローンは git clone --filter=blob:none を使用して作成され、その後ローカルリポジトリが構成され、Git クライアントはローカル操作に必要な場合を除いてブロブオブジェクトのダウンロードを回避します。これは、最初クローンと後続のフェッチが到達可能なコミットとツリーをダウンロードしますが、ブロブはダウンロードしないことを意味します。HEAD ポインタを変更する後の操作 (例: git checkoutgit merge) は、操作を完了するために不足しているブロブをダウンロードする必要がある場合があります。

最悪の場合、git blame のようなブロブの差分を計算するコマンドは、Git コマンドが必要とする不足オブジェクトを満たすために、不足しているブロブを単一ブロブのリクエストでダウンロードするため、非常に遅くなります。これにより、複数のダウンロードリクエストが発生し、Git サーバーはこれらのオブジェクト間でデルタ圧縮を提供できません。

git backfill コマンドは、ファイルの履歴バージョンを表す不足しているブロブをバッチでダウンロードできるように、ユーザーが不足しているブロブ (オプションのフィルター付き) をダウンロードするように Git に要求する方法を提供します。backfill コマンドは、同じパスに現れるブロブをグループ化することでリクエストを最適化しようとし、サーバーから送信されるパックファイルで良好なデルタ圧縮につながることを期待します。

このようにして、git backfill は大きなクローンを小さなチャンクに分割するメカニズムを提供します。git clone --filter=blob:none を使用してブロブなしの部分クローンから開始し、その後ローカルリポジトリで git backfill を実行すると、クローン時にリポジトリ全体をダウンロードするよりも、いくつかの小さなネットワーク呼び出しで到達可能なすべてのオブジェクトをダウンロードする方法が提供されます。

デフォルトでは、git backfillHEAD コミットから到達可能なすべてのブロブをダウンロードします。このセットは、さまざまなオプションを使用して制限または拡張できます。

このコマンドは実験的です。将来、その動作は変更される可能性があります。

オプション

--min-batch-size=<n>

サーバーに要求する不足オブジェクトのバッチの最小サイズを指定します。このサイズは、特定のパスで最後に表示されたブロブのセットによって超過される場合があります。デフォルトの最小バッチサイズは 50,000 です。

--[no-]sparse

現在のスパースチェックアウトに一致するパスに現れる場合にのみオブジェクトをダウンロードします。スパースチェックアウト機能が有効になっている場合、--sparse が仮定され、--no-sparse で無効にできます。

関連項目

GIT

git[1]スイートの一部

scroll-to-top