]>
Commit | Line | Data |
---|---|---|
5f40520f JH |
1 | git-pack-objects(1) |
2 | =================== | |
5f40520f JH |
3 | |
4 | NAME | |
5 | ---- | |
7bd7f280 | 6 | git-pack-objects - Create a packed archive of objects |
5f40520f JH |
7 | |
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
ca5381d4 | 11 | [verse] |
b1889c36 | 12 | 'git pack-objects' [-q] [--no-reuse-delta] [--delta-base-offset] [--non-empty] |
fa438a2e | 13 | [--local] [--incremental] [--window=N] [--depth=N] [--all-progress] |
7f3140cd JS |
14 | [--revs [--unpacked | --all]*] [--stdout | base-name] |
15 | [--keep-true-parents] < object-list | |
5f40520f JH |
16 | |
17 | ||
18 | DESCRIPTION | |
19 | ----------- | |
20 | Reads list of objects from the standard input, and writes a packed | |
21 | archive with specified base-name, or to the standard output. | |
22 | ||
23 | A packed archive is an efficient way to transfer set of objects | |
24 | between two repositories, and also is an archival format which | |
25 | is efficient to access. The packed archive format (.pack) is | |
ba1333fe PE |
26 | designed to be self contained so that it can be unpacked without |
27 | any further information, but for fast, random access to the objects | |
28 | in the pack, a pack index file (.idx) will be generated. | |
5f40520f | 29 | |
1e6ab5de MK |
30 | Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or |
31 | any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) | |
32 | enables git to read from such an archive. | |
33 | ||
ba020ef5 | 34 | The 'git-unpack-objects' command can read the packed archive and |
5f40520f JH |
35 | expand the objects contained in the pack into "one-file |
36 | one-object" format; this is typically done by the smart-pull | |
37 | commands when a pack is created on-the-fly for efficient network | |
38 | transport by their peers. | |
39 | ||
ca5381d4 JH |
40 | In a packed archive, an object is either stored as a compressed |
41 | whole, or as a difference from some other object. The latter is | |
42 | often called a delta. | |
43 | ||
5f40520f JH |
44 | |
45 | OPTIONS | |
46 | ------- | |
47 | base-name:: | |
48 | Write into a pair of files (.pack and .idx), using | |
49 | <base-name> to determine the name of the created file. | |
50 | When this option is used, the two files are written in | |
51 | <base-name>-<SHA1>.{pack,idx} files. <SHA1> is a hash | |
e23ed9a8 NP |
52 | of the sorted object names to make the resulting filename |
53 | based on the pack content, and written to the standard | |
5f40520f JH |
54 | output of the command. |
55 | ||
56 | --stdout:: | |
89438677 | 57 | Write the pack contents (what would have been written to |
5f40520f JH |
58 | .pack file) out to the standard output. |
59 | ||
4321134c JH |
60 | --revs:: |
61 | Read the revision arguments from the standard input, instead of | |
62 | individual object names. The revision arguments are processed | |
ba020ef5 | 63 | the same way as 'git-rev-list' with the `--objects` flag |
4321134c JH |
64 | uses its `commit` arguments to build the list of objects it |
65 | outputs. The objects on the resulting list are packed. | |
66 | ||
67 | --unpacked:: | |
68 | This implies `--revs`. When processing the list of | |
69 | revision arguments read from the standard input, limit | |
70 | the objects packed to those that are not already packed. | |
71 | ||
72 | --all:: | |
73 | This implies `--revs`. In addition to the list of | |
74 | revision arguments read from the standard input, pretend | |
3df19671 | 75 | as if all refs under `$GIT_DIR/refs` are specified to be |
4321134c JH |
76 | included. |
77 | ||
f0a24aa5 SP |
78 | --include-tag:: |
79 | Include unasked-for annotated tags if the object they | |
80 | reference was included in the resulting packfile. This | |
81 | can be useful to send new tags to native git clients. | |
82 | ||
3240240f SB |
83 | --window=[N]:: |
84 | --depth=[N]:: | |
3df19671 | 85 | These two options affect how the objects contained in |
5f40520f JH |
86 | the pack are stored using delta compression. The |
87 | objects are first internally sorted by type, size and | |
88 | optionally names and compared against the other objects | |
89 | within --window to see if using delta compression saves | |
90 | space. --depth limits the maximum delta depth; making | |
91 | it too deep affects the performance on the unpacker | |
92 | side, because delta data needs to be applied that many | |
93 | times to get to the necessary object. | |
618e613a | 94 | The default value for --window is 10 and --depth is 50. |
5f40520f | 95 | |
e93b15cd BD |
96 | --window-memory=[N]:: |
97 | This option provides an additional limit on top of `--window`; | |
98 | the window size will dynamically scale down so as to not take | |
99 | up more than N bytes in memory. This is useful in | |
100 | repositories with a mix of large and small objects to not run | |
101 | out of memory with a large window, but still be able to take | |
102 | advantage of the large window for the smaller objects. The | |
103 | size can be suffixed with "k", "m", or "g". | |
104 | `--window-memory=0` makes memory usage unlimited, which is the | |
105 | default. | |
106 | ||
6b94b1a0 DH |
107 | --max-pack-size=<n>:: |
108 | Maximum size of each output packfile, expressed in MiB. | |
109 | If specified, multiple packfiles may be created. | |
2b84b5a8 JS |
110 | The default is unlimited, unless the config variable |
111 | `pack.packSizeLimit` is set. | |
6b94b1a0 | 112 | |
e96fb9b8 BC |
113 | --honor-pack-keep:: |
114 | This flag causes an object already in a local pack that | |
115 | has a .keep file to be ignored, even if it appears in the | |
116 | standard input. | |
117 | ||
5f40520f JH |
118 | --incremental:: |
119 | This flag causes an object already in a pack ignored | |
120 | even if it appears in the standard input. | |
121 | ||
12ea5bea JH |
122 | --local:: |
123 | This flag is similar to `--incremental`; instead of | |
124 | ignoring all packed objects, it only ignores objects | |
daae0625 | 125 | that are packed and/or not in the local object store |
12ea5bea | 126 | (i.e. borrowed from an alternate). |
5f40520f | 127 | |
63ae26f8 NW |
128 | --non-empty:: |
129 | Only create a packed archive if it would contain at | |
130 | least one object. | |
131 | ||
231f240b NP |
132 | --progress:: |
133 | Progress status is reported on the standard error stream | |
134 | by default when it is attached to a terminal, unless -q | |
135 | is specified. This flag forces progress status even if | |
136 | the standard error stream is not directed to a terminal. | |
137 | ||
138 | --all-progress:: | |
139 | When --stdout is specified then progress report is | |
140 | displayed during the object count and deltification phases | |
141 | but inhibited during the write-out phase. The reason is | |
142 | that in some cases the output stream is directly linked | |
143 | to another command which may wish to display progress | |
144 | status of its own as it processes incoming pack data. | |
145 | This flag is like --progress except that it forces progress | |
146 | report for the write-out phase as well even if --stdout is | |
147 | used. | |
148 | ||
ca5381d4 JH |
149 | -q:: |
150 | This flag makes the command not to report its progress | |
151 | on the standard error stream. | |
152 | ||
153 | --no-reuse-delta:: | |
154 | When creating a packed archive in a repository that | |
155 | has existing packs, the command reuses existing deltas. | |
156 | This sometimes results in a slightly suboptimal pack. | |
157 | This flag tells the command not to reuse existing deltas | |
158 | but compute them from scratch. | |
159 | ||
fa736f72 NP |
160 | --no-reuse-object:: |
161 | This flag tells the command not to reuse existing object data at all, | |
162 | including non deltified object, forcing recompression of everything. | |
960ccca6 | 163 | This implies --no-reuse-delta. Useful only in the obscure case where |
fa736f72 NP |
164 | wholesale enforcement of a different compression level on the |
165 | packed data is desired. | |
166 | ||
960ccca6 DH |
167 | --compression=[N]:: |
168 | Specifies compression level for newly-compressed data in the | |
169 | generated pack. If not specified, pack compression level is | |
170 | determined first by pack.compression, then by core.compression, | |
171 | and defaults to -1, the zlib default, if neither is set. | |
483bc4f0 | 172 | Add --no-reuse-object if you want to force a uniform compression |
05cc2ffc | 173 | level on all data no matter the source. |
960ccca6 | 174 | |
63fba759 JH |
175 | --delta-base-offset:: |
176 | A packed archive can express base object of a delta as | |
177 | either 20-byte object name or as an offset in the | |
178 | stream, but older version of git does not understand the | |
ba020ef5 | 179 | latter. By default, 'git-pack-objects' only uses the |
63fba759 JH |
180 | former format for better compatibility. This option |
181 | allows the command to use the latter format for | |
182 | compactness. Depending on the average delta chain | |
183 | length, this option typically shrinks the resulting | |
184 | packfile by 3-5 per-cent. | |
185 | ||
367f4a43 NP |
186 | --threads=<n>:: |
187 | Specifies the number of threads to spawn when searching for best | |
188 | delta matches. This requires that pack-objects be compiled with | |
189 | pthreads otherwise this option is ignored with a warning. | |
190 | This is meant to reduce packing time on multiprocessor machines. | |
191 | The required amount of memory for the delta search window is | |
192 | however multiplied by the number of threads. | |
833e3df1 AE |
193 | Specifying 0 will cause git to auto-detect the number of CPU's |
194 | and set the number of threads accordingly. | |
367f4a43 | 195 | |
be18c1fe NP |
196 | --index-version=<version>[,<offset>]:: |
197 | This is intended to be used by the test suite only. It allows | |
198 | to force the version for the generated pack index, and to force | |
199 | 64-bit index entries on objects located above the given offset. | |
200 | ||
7f3140cd JS |
201 | --keep-true-parents:: |
202 | With this option, parents that are hidden by grafts are packed | |
203 | nevertheless. | |
204 | ||
ca5381d4 | 205 | |
5f40520f JH |
206 | Author |
207 | ------ | |
208 | Written by Linus Torvalds <torvalds@osdl.org> | |
209 | ||
210 | Documentation | |
211 | ------------- | |
212 | Documentation by Junio C Hamano | |
213 | ||
56ae8df5 | 214 | SEE ALSO |
e31bb3bb | 215 | -------- |
5162e697 DM |
216 | linkgit:git-rev-list[1] |
217 | linkgit:git-repack[1] | |
218 | linkgit:git-prune-packed[1] | |
e31bb3bb | 219 | |
5f40520f JH |
220 | GIT |
221 | --- | |
9e1f0a85 | 222 | Part of the linkgit:git[1] suite |