SYNOPSIS
gitcommit-graphverify[--object-dir<dir>] [--shallow] [--[no-]progress] gitcommit-graphwrite[--object-dir<dir>] [--append] [--split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-paths] [--[no-]max-new-filters<n>] [--[no-]progress] <split-options>
DESCRIPTION
シリアル化されたコミットグラフファイルを管理します。
OPTIONS
-
--object-dir -
パックファイルとコミットグラフファイルの場所として、指定のディレクトリを使用します。このパラメータは、完全な
.gitディレクトリではなく、objectsディレクトリのみを持つ代替の場所を指定するために存在します。コミットグラフファイルは <dir>/infoディレクトリにあり、パックファイルは <dir>/packにあるものと期待されます。ディレクトリを絶対パスにすることができなかった場合、または既知のオブジェクトディレクトリと一致しない場合、gitcommit-graph... はゼロ以外のステータスで終了します。 -
--[no-]progress -
進行状況を明示的にオン/オフにします。どちらも指定されていない場合、標準エラーが端末に接続されていれば進行状況が表示されます。
COMMANDS
-
write -
パックファイルで見つかったコミットに基づいてコミットグラフファイルを書き出します。構成オプション
core.commitGraphが無効になっている場合、このコマンドは警告を出力し、コミットグラフファイルを書き込まずに成功を返します。--stdin-packsオプションと共に使用して、指定のパックインデックス内のオブジェクトのみをウォークすることにより、新しいコミットグラフを生成します。 (--stdin-commitsまたは--reachableと組み合わせることはできません。)--stdin-commitsオプションと共に使用して、16進数のOIDのリストとしてstdinで指定されたコミットから始まるコミットを1行に1つずつウォークして、新しいコミットグラフを生成します。(直接に、またはタグの皮むき(peeling)によって、)非コミットに解決されるOIDは黙って無視されます。不正な形式のOID、または存在しないOIDは、エラーを生成します。 (--stdin-packsまたは--reachableと組み合わせることはできません。)--reachableオプションと共に使用して、すべての参照で開始するコミットをウォークして、新しいコミットグラフを生成します。 (--stdin-commitsまたは--stdin-packsと組み合わせることはできません。)--appendオプションと共に使用して、既存のコミットグラフファイルに存在するすべてのコミットを含めます。--changed-pathsオプションと共に使用すると、コミットとその最初の親(first parent)の間で変更されたパスに関する情報を計算して書き込みます。この操作は、大規模なリポジトリでは時間がかかる場合があります。gitlog--<path> を使用すると、ディレクトリまたはファイルの履歴を取得するためのパフォーマンスが大幅に向上します。このオプションが指定されている場合、その後のコミットグラフ書き込みでは、このオプションが指定されたものであると自動的に想定されます。このデータの保存を停止するには、--no-changed-pathsを使用します。--max-new-filters=<n> オプションと共に使用して、(--changed-pathsが指定されている場合、)最大でnの新しいブルームフィルター(Bloom filters)を生成します。nが-1の場合、制限は適用されません。この制限に対しては、新しいレイヤーに存在するコミットのみがカウントされます。以前のレイヤーでブルームフィルターをさかのぼって計算するには、--split=replaceを使用することをお勧めします。commitGraph.maxNewFilters構成をオーバーライドします。--split[=<strategy>] オプションと共に使用して、 <dir>/info/commit-graphsに格納されている複数のコミットグラフファイルのチェーンとしてコミットグラフを記述します。コミットグラフレイヤーは、戦略およびその他の分割オプションに基づいてマージされます。コミットグラフにまだ含まれていない新しいコミットは、新しい先端ファイル(tip file)に追加されます。以下のマージ条件が満たされた場合、このファイルは既存のファイルとマージされます:-
--split=no-mergeが指定されている場合、マージは実行されず、残りのオプションは無視されます。--split=replaceは、既存のチェーンを新しいチェーンで上書きします。裸の--splitは後続のオプションに従います。 (注意: コミットグラフのチェーンをマージすると、既存のチェーンが長さ1のチェーンに置き換えられ、最初で唯一の増分がグラフ全体を保持することに注意してください)。 -
--size-multiple=<X> が指定されていない場合は、 Xを2に等しくします。新しい先端ファイル(tip file)にN個のコミットがあり、以前の先端にM個のコミットがあり、「X 掛ける N」が M より大きい場合は、代わりに2つのファイルを1つのファイルにマージします。 -
--max-commits=<M> オプションの M が正の整数で指定され、新しい先端ファイル(tip file) に M 以上のコミットがある場合は、代わりに新しい先端を以前の先端とマージします。最後に、
--expire-time=<datetime> が指定されていない場合は、 datetimeを現在の時刻とします。分割コミットグラフ(split commit-graph)を書き込んだ後、変更時刻がdatetimeより古い未使用のコミットグラフをすべて削除します。
-
-
verify -
コミットグラフファイルを読み取り、その内容をオブジェクトデータベースと照合して確認(verify)します。破損したデータをチェックするために使用されます。
--shallowオプションと共に使用すると、分割コミットグラフ(split commit-graphs)のチェーン内の先端コミットグラフファイルのみをチェックします。
EXAMPLES
-
パックされたコミットのコミットグラフファイルをローカルの
.gitディレクトリに書き込みます。$ git commit-graph write -
<pack-index> のコミットを使用して、現在のコミットグラフファイルを拡張するコミットグラフファイルを書き出します。
$ echo <pack-index> | git commit-graph write --stdin-packs -
到達可能なすべてのコミットを含むコミットグラフファイルを作成します。
$ git show-ref -s | git commit-graph write --stdin-commits -
現在のコミットグラフファイル内のすべてのコミットと
HEADから到達可能なコミットを含むコミットグラフファイルを書き出します。$ git rev-parse HEAD | git commit-graph write --stdin-commits --append
CONFIGURATION
このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:
- commitGraph.generationVersion
-
commit-graph ファイルの書き込みまたは読み取り時に使用する世代番号バージョン(generation number version)のタイプを指定します。 バージョン 1 が指定されている場合、修正されたコミット日付は書き込まれたり読み取られたりしません。 デフォルトは 2 です。
- commitGraph.maxNewFilters
-
gitcommit-graphwriteの--max-new-filtersオプションのデフォルト値を指定します(git-commit-graph(1) 参照)。 - commitGraph.readChangedPaths
-
廃止されました。
trueならば commitGraph.changedPathsVersion=-1 と、 そして、falseならば commitGraph.changedPathsVersion=0 と同等です。 (commitGraph.changedPathVersion も設定されている場合は、 commitGraph.changedPathsVersion の方が優先されます。) - commitGraph.changedPathsVersion
-
Git が読み書きする、 変更されたパスのブルーム・フィルター(the changed-path Bloom filters)のバージョンを指定します。 -1, 0, 1, 2 のいずれかになります。 注意: 1 を超える値は、 変更されたパスのブルーム・フィルター(the changed-path Bloom filters)のバージョンをまだ理解していない古いバージョンの Git と互換性が無い可能性があることに注意してください。 混合バージョン環境で操作する場合は注意してください。
デフォルトは -1 です。
値が -1 の場合、 Git はリポジトリ内の、 変更されたパスのブルーム・フィルター(the changed-path Bloom filters)のバージョンを使用し、 存在しない場合はデフォルトの 1 を使用します。
値が 0 の場合、Git はブルーム・フィルターを一切読み取らず、 書き込みを指示された場合はバージョン 1 のブルーム・フィルターを書き込みます。
値が 1 の場合、 Git はバージョン 1 のブルーム・フィルターのみを読み取り、 そして、 バージョン 1 の Bloom フィルターを書き込みます。
値が 2 の場合、 Git はバージョン 2 のブルーム・フィルターのみを読み取り、 バージョン 2 のブルーム・フィルターを書き込みます。
詳細については git-commit-graph(1) を参照してください。
FILE FORMAT
GIT
Part of the git(1) suite