From 1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 11 Jan 2020 23:36:56 +0000 Subject: Squashed 'third_party/git/' content from commit cb71568594 git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7 --- Documentation/git-commit-graph.txt | 127 +++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 Documentation/git-commit-graph.txt (limited to 'Documentation/git-commit-graph.txt') diff --git a/Documentation/git-commit-graph.txt b/Documentation/git-commit-graph.txt new file mode 100644 index 000000000000..eb5e7865f0ef --- /dev/null +++ b/Documentation/git-commit-graph.txt @@ -0,0 +1,127 @@ +git-commit-graph(1) +=================== + +NAME +---- +git-commit-graph - Write and verify Git commit-graph files + + +SYNOPSIS +-------- +[verse] +'git commit-graph read' [--object-dir ] +'git commit-graph verify' [--object-dir ] [--shallow] +'git commit-graph write' [--object-dir ] + + +DESCRIPTION +----------- + +Manage the serialized commit-graph file. + + +OPTIONS +------- +--object-dir:: + Use given directory for the location of packfiles and commit-graph + file. This parameter exists to specify the location of an alternate + that only has the objects directory, not a full `.git` directory. The + commit-graph file is expected to be in the `/info` directory and + the packfiles are expected to be in `/pack`. + + +COMMANDS +-------- +'write':: + +Write a commit-graph file based on the commits found in packfiles. ++ +With the `--stdin-packs` option, generate the new commit graph by +walking objects only in the specified pack-indexes. (Cannot be combined +with `--stdin-commits` or `--reachable`.) ++ +With the `--stdin-commits` option, generate the new commit graph by +walking commits starting at the commits specified in stdin as a list +of OIDs in hex, one OID per line. (Cannot be combined with +`--stdin-packs` or `--reachable`.) ++ +With the `--reachable` option, generate the new commit graph by walking +commits starting at all refs. (Cannot be combined with `--stdin-commits` +or `--stdin-packs`.) ++ +With the `--append` option, include all commits that are present in the +existing commit-graph file. ++ +With the `--split` option, write the commit-graph as a chain of multiple +commit-graph files stored in `/info/commit-graphs`. The new commits +not already in the commit-graph are added in a new "tip" file. This file +is merged with the existing file if the following merge conditions are +met: ++ +* If `--size-multiple=` is not specified, let `X` equal 2. If the new +tip file would have `N` commits and the previous tip has `M` commits and +`X` times `N` is greater than `M`, instead merge the two files into a +single file. ++ +* If `--max-commits=` is specified with `M` a positive integer, and the +new tip file would have more than `M` commits, then instead merge the new +tip with the previous tip. ++ +Finally, if `--expire-time=` is not specified, let `datetime` +be the current time. After writing the split commit-graph, delete all +unused commit-graph whose modified times are older than `datetime`. + +'read':: + +Read the commit-graph file and output basic details about it. +Used for debugging purposes. + +'verify':: + +Read the commit-graph file and verify its contents against the object +database. Used to check for corrupted data. ++ +With the `--shallow` option, only check the tip commit-graph file in +a chain of split commit-graphs. + + +EXAMPLES +-------- + +* Write a commit-graph file for the packed commits in your local `.git` + directory. ++ +------------------------------------------------ +$ git commit-graph write +------------------------------------------------ + +* Write a commit-graph file, extending the current commit-graph file + using commits in ``. ++ +------------------------------------------------ +$ echo | git commit-graph write --stdin-packs +------------------------------------------------ + +* Write a commit-graph file containing all reachable commits. ++ +------------------------------------------------ +$ git show-ref -s | git commit-graph write --stdin-commits +------------------------------------------------ + +* Write a commit-graph file containing all commits in the current + commit-graph file along with those reachable from `HEAD`. ++ +------------------------------------------------ +$ git rev-parse HEAD | git commit-graph write --stdin-commits --append +------------------------------------------------ + +* Read basic information from the commit-graph file. ++ +------------------------------------------------ +$ git commit-graph read +------------------------------------------------ + + +GIT +--- +Part of the linkgit:git[1] suite -- cgit 1.4.1