Autogenerated manpages for v2.35.1-225-ge2ac9
[git-manpages.git] / man1 / git-commit-graph.1
blobcf53e0f6254195a5c874c6092c3ef6c461e9fcfb
1 '\" t
2 .\"     Title: git-commit-graph
3 .\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
5 .\"      Date: 02/17/2022
6 .\"    Manual: Git Manual
7 .\"    Source: Git 2.35.1.225.ge2ac9141e6
8 .\"  Language: English
9 .\"
10 .TH "GIT\-COMMIT\-GRAPH" "1" "02/17/2022" "Git 2\&.35\&.1\&.225\&.ge2ac91" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 git-commit-graph \- Write and verify Git commit\-graph files
32 .SH "SYNOPSIS"
33 .sp
34 .nf
35 \fIgit commit\-graph verify\fR [\-\-object\-dir <dir>] [\-\-shallow] [\-\-[no\-]progress]
36 \fIgit commit\-graph write\fR <options> [\-\-object\-dir <dir>] [\-\-[no\-]progress]
37 .fi
38 .sp
39 .SH "DESCRIPTION"
40 .sp
41 Manage the serialized commit\-graph file\&.
42 .SH "OPTIONS"
43 .PP
44 \-\-object\-dir
45 .RS 4
46 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
47 \fB\&.git\fR
48 directory\&. The commit\-graph file is expected to be in the
49 \fB<dir>/info\fR
50 directory and the packfiles are expected to be in
51 \fB<dir>/pack\fR\&. If the directory could not be made into an absolute path, or does not match any known object directory,
52 \fBgit commit\-graph \&.\&.\&.\fR
53 will exit with non\-zero status\&.
54 .RE
55 .PP
56 \-\-[no\-]progress
57 .RS 4
58 Turn progress on/off explicitly\&. If neither is specified, progress is shown if standard error is connected to a terminal\&.
59 .RE
60 .SH "COMMANDS"
61 .PP
62 \fIwrite\fR
63 .RS 4
64 Write a commit\-graph file based on the commits found in packfiles\&. If the config option
65 \fBcore\&.commitGraph\fR
66 is disabled, then this command will output a warning, then return success without writing a commit\-graph file\&.
67 .sp
68 With the
69 \fB\-\-stdin\-packs\fR
70 option, generate the new commit graph by walking objects only in the specified pack\-indexes\&. (Cannot be combined with
71 \fB\-\-stdin\-commits\fR
73 \fB\-\-reachable\fR\&.)
74 .sp
75 With the
76 \fB\-\-stdin\-commits\fR
77 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\&. OIDs that resolve to non\-commits (either directly, or by peeling tags) are silently ignored\&. OIDs that are malformed, or do not exist generate an error\&. (Cannot be combined with
78 \fB\-\-stdin\-packs\fR
80 \fB\-\-reachable\fR\&.)
81 .sp
82 With the
83 \fB\-\-reachable\fR
84 option, generate the new commit graph by walking commits starting at all refs\&. (Cannot be combined with
85 \fB\-\-stdin\-commits\fR
87 \fB\-\-stdin\-packs\fR\&.)
88 .sp
89 With the
90 \fB\-\-append\fR
91 option, include all commits that are present in the existing commit\-graph file\&.
92 .sp
93 With the
94 \fB\-\-changed\-paths\fR
95 option, compute and write information about the paths changed between a commit and its first parent\&. This operation can take a while on large repositories\&. It provides significant performance gains for getting history of a directory or a file with
96 \fBgit log \-\- <path>\fR\&. If this option is given, future commit\-graph writes will automatically assume that this option was intended\&. Use
97 \fB\-\-no\-changed\-paths\fR
98 to stop storing this data\&.
99 .sp
100 With the
101 \fB\-\-max\-new\-filters=<n>\fR
102 option, generate at most
103 \fBn\fR
104 new Bloom filters (if
105 \fB\-\-changed\-paths\fR
106 is specified)\&. If
107 \fBn\fR
109 \fB\-1\fR, no limit is enforced\&. Only commits present in the new layer count against this limit\&. To retroactively compute Bloom filters over earlier layers, it is advised to use
110 \fB\-\-split=replace\fR\&. Overrides the
111 \fBcommitGraph\&.maxNewFilters\fR
112 configuration\&.
114 With the
115 \fB\-\-split[=<strategy>]\fR
116 option, write the commit\-graph as a chain of multiple commit\-graph files stored in
117 \fB<dir>/info/commit\-graphs\fR\&. Commit\-graph layers are merged based on the strategy and other splitting options\&. 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:
119 .RS 4
120 .ie n \{\
121 \h'-04'\(bu\h'+03'\c
123 .el \{\
124 .sp -1
125 .IP \(bu 2.3
128 \fB\-\-split=no\-merge\fR
129 is specified, a merge is never performed, and the remaining options are ignored\&.
130 \fB\-\-split=replace\fR
131 overwrites the existing chain with a new one\&. A bare
132 \fB\-\-split\fR
133 defers to the remaining options\&. (Note that merging a chain of commit graphs replaces the existing chain with a length\-1 chain where the first and only incremental holds the entire graph)\&.
136 .RS 4
137 .ie n \{\
138 \h'-04'\(bu\h'+03'\c
140 .el \{\
141 .sp -1
142 .IP \(bu 2.3
145 \fB\-\-size\-multiple=<X>\fR
146 is not specified, let
147 \fBX\fR
148 equal 2\&. If the new tip file would have
149 \fBN\fR
150 commits and the previous tip has
151 \fBM\fR
152 commits and
153 \fBX\fR
154 times
155 \fBN\fR
156 is greater than
157 \fBM\fR, instead merge the two files into a single file\&.
160 .RS 4
161 .ie n \{\
162 \h'-04'\(bu\h'+03'\c
164 .el \{\
165 .sp -1
166 .IP \(bu 2.3
169 \fB\-\-max\-commits=<M>\fR
170 is specified with
171 \fBM\fR
172 a positive integer, and the new tip file would have more than
173 \fBM\fR
174 commits, then instead merge the new tip with the previous tip\&.
176 Finally, if
177 \fB\-\-expire\-time=<datetime>\fR
178 is not specified, let
179 \fBdatetime\fR
180 be the current time\&. After writing the split commit\-graph, delete all unused commit\-graph whose modified times are older than
181 \fBdatetime\fR\&.
185 \fIverify\fR
186 .RS 4
187 Read the commit\-graph file and verify its contents against the object database\&. Used to check for corrupted data\&.
189 With the
190 \fB\-\-shallow\fR
191 option, only check the tip commit\-graph file in a chain of split commit\-graphs\&.
193 .SH "EXAMPLES"
195 .RS 4
196 .ie n \{\
197 \h'-04'\(bu\h'+03'\c
199 .el \{\
200 .sp -1
201 .IP \(bu 2.3
203 Write a commit\-graph file for the packed commits in your local
204 \fB\&.git\fR
205 directory\&.
207 .if n \{\
208 .RS 4
211 $ git commit\-graph write
213 .if n \{\
219 .RS 4
220 .ie n \{\
221 \h'-04'\(bu\h'+03'\c
223 .el \{\
224 .sp -1
225 .IP \(bu 2.3
227 Write a commit\-graph file, extending the current commit\-graph file using commits in
228 \fB<pack\-index>\fR\&.
230 .if n \{\
231 .RS 4
234 $ echo <pack\-index> | git commit\-graph write \-\-stdin\-packs
236 .if n \{\
242 .RS 4
243 .ie n \{\
244 \h'-04'\(bu\h'+03'\c
246 .el \{\
247 .sp -1
248 .IP \(bu 2.3
250 Write a commit\-graph file containing all reachable commits\&.
252 .if n \{\
253 .RS 4
256 $ git show\-ref \-s | git commit\-graph write \-\-stdin\-commits
258 .if n \{\
264 .RS 4
265 .ie n \{\
266 \h'-04'\(bu\h'+03'\c
268 .el \{\
269 .sp -1
270 .IP \(bu 2.3
272 Write a commit\-graph file containing all commits in the current commit\-graph file along with those reachable from
273 \fBHEAD\fR\&.
275 .if n \{\
276 .RS 4
279 $ git rev\-parse HEAD | git commit\-graph write \-\-stdin\-commits \-\-append
281 .if n \{\
286 .SH "GIT"
288 Part of the \fBgit\fR(1) suite