| git-pack-objects(1) | |
| =================== | |
| NAME | |
| ---- | |
| git-pack-objects - Create a packed archive of objects | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| 'git pack-objects' [-q] [--no-reuse-delta] [--delta-base-offset] [--non-empty] | |
| [--local] [--incremental] [--window=N] [--depth=N] [--all-progress] | |
| [--revs [--unpacked | --all]*] [--stdout | base-name] < object-list | |
| DESCRIPTION | |
| ----------- | |
| Reads list of objects from the standard input, and writes a packed | |
| archive with specified base-name, or to the standard output. | |
| A packed archive is an efficient way to transfer set of objects | |
| between two repositories, and also is an archival format which | |
| is efficient to access. The packed archive format (.pack) is | |
| designed to be self contained so that it can be unpacked without | |
| any further information, but for fast, random access to the objects | |
| in the pack, a pack index file (.idx) will be generated. | |
| Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or | |
| any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) | |
| enables git to read from such an archive. | |
| The 'git-unpack-objects' command can read the packed archive and | |
| expand the objects contained in the pack into "one-file | |
| one-object" format; this is typically done by the smart-pull | |
| commands when a pack is created on-the-fly for efficient network | |
| transport by their peers. | |
| In a packed archive, an object is either stored as a compressed | |
| whole, or as a difference from some other object. The latter is | |
| often called a delta. | |
| OPTIONS | |
| ------- | |
| base-name:: | |
| Write into a pair of files (.pack and .idx), using | |
| <base-name> to determine the name of the created file. | |
| When this option is used, the two files are written in | |
| <base-name>-<SHA1>.{pack,idx} files. <SHA1> is a hash | |
| of the sorted object names to make the resulting filename | |
| based on the pack content, and written to the standard | |
| output of the command. | |
| --stdout:: | |
| Write the pack contents (what would have been written to | |
| .pack file) out to the standard output. | |
| --revs:: | |
| Read the revision arguments from the standard input, instead of | |
| individual object names. The revision arguments are processed | |
| the same way as 'git-rev-list' with the `--objects` flag | |
| uses its `commit` arguments to build the list of objects it | |
| outputs. The objects on the resulting list are packed. | |
| --unpacked:: | |
| This implies `--revs`. When processing the list of | |
| revision arguments read from the standard input, limit | |
| the objects packed to those that are not already packed. | |
| --all:: | |
| This implies `--revs`. In addition to the list of | |
| revision arguments read from the standard input, pretend | |
| as if all refs under `$GIT_DIR/refs` are specified to be | |
| included. | |
| --include-tag:: | |
| Include unasked-for annotated tags if the object they | |
| reference was included in the resulting packfile. This | |
| can be useful to send new tags to native git clients. | |
| --window=[N]:: | |
| --depth=[N]:: | |
| These two options affect how the objects contained in | |
| the pack are stored using delta compression. The | |
| objects are first internally sorted by type, size and | |
| optionally names and compared against the other objects | |
| within --window to see if using delta compression saves | |
| space. --depth limits the maximum delta depth; making | |
| it too deep affects the performance on the unpacker | |
| side, because delta data needs to be applied that many | |
| times to get to the necessary object. | |
| The default value for --window is 10 and --depth is 50. | |
| --window-memory=[N]:: | |
| This option provides an additional limit on top of `--window`; | |
| the window size will dynamically scale down so as to not take | |
| up more than N bytes in memory. This is useful in | |
| repositories with a mix of large and small objects to not run | |
| out of memory with a large window, but still be able to take | |
| advantage of the large window for the smaller objects. The | |
| size can be suffixed with "k", "m", or "g". | |
| `--window-memory=0` makes memory usage unlimited, which is the | |
| default. | |
| --max-pack-size=<n>:: | |
| Maximum size of each output packfile, expressed in MiB. | |
| If specified, multiple packfiles may be created. | |
| The default is unlimited, unless the config variable | |
| `pack.packSizeLimit` is set. | |
| --honor-pack-keep:: | |
| This flag causes an object already in a local pack that | |
| has a .keep file to be ignored, even if it appears in the | |
| standard input. | |
| --incremental:: | |
| This flag causes an object already in a pack ignored | |
| even if it appears in the standard input. | |
| --local:: | |
| This flag is similar to `--incremental`; instead of | |
| ignoring all packed objects, it only ignores objects | |
| that are packed and/or not in the local object store | |
| (i.e. borrowed from an alternate). | |
| --non-empty:: | |
| Only create a packed archive if it would contain at | |
| least one object. | |
| --progress:: | |
| Progress status is reported on the standard error stream | |
| by default when it is attached to a terminal, unless -q | |
| is specified. This flag forces progress status even if | |
| the standard error stream is not directed to a terminal. | |
| --all-progress:: | |
| When --stdout is specified then progress report is | |
| displayed during the object count and deltification phases | |
| but inhibited during the write-out phase. The reason is | |
| that in some cases the output stream is directly linked | |
| to another command which may wish to display progress | |
| status of its own as it processes incoming pack data. | |
| This flag is like --progress except that it forces progress | |
| report for the write-out phase as well even if --stdout is | |
| used. | |
| -q:: | |
| This flag makes the command not to report its progress | |
| on the standard error stream. | |
| --no-reuse-delta:: | |
| When creating a packed archive in a repository that | |
| has existing packs, the command reuses existing deltas. | |
| This sometimes results in a slightly suboptimal pack. | |
| This flag tells the command not to reuse existing deltas | |
| but compute them from scratch. | |
| --no-reuse-object:: | |
| This flag tells the command not to reuse existing object data at all, | |
| including non deltified object, forcing recompression of everything. | |
| This implies --no-reuse-delta. Useful only in the obscure case where | |
| wholesale enforcement of a different compression level on the | |
| packed data is desired. | |
| --compression=[N]:: | |
| Specifies compression level for newly-compressed data in the | |
| generated pack. If not specified, pack compression level is | |
| determined first by pack.compression, then by core.compression, | |
| and defaults to -1, the zlib default, if neither is set. | |
| Add --no-reuse-object if you want to force a uniform compression | |
| level on all data no matter the source. | |
| --delta-base-offset:: | |
| A packed archive can express base object of a delta as | |
| either 20-byte object name or as an offset in the | |
| stream, but older version of git does not understand the | |
| latter. By default, 'git-pack-objects' only uses the | |
| former format for better compatibility. This option | |
| allows the command to use the latter format for | |
| compactness. Depending on the average delta chain | |
| length, this option typically shrinks the resulting | |
| packfile by 3-5 per-cent. | |
| --threads=<n>:: | |
| Specifies the number of threads to spawn when searching for best | |
| delta matches. This requires that pack-objects be compiled with | |
| pthreads otherwise this option is ignored with a warning. | |
| This is meant to reduce packing time on multiprocessor machines. | |
| The required amount of memory for the delta search window is | |
| however multiplied by the number of threads. | |
| Specifying 0 will cause git to auto-detect the number of CPU's | |
| and set the number of threads accordingly. | |
| --index-version=<version>[,<offset>]:: | |
| This is intended to be used by the test suite only. It allows | |
| to force the version for the generated pack index, and to force | |
| 64-bit index entries on objects located above the given offset. | |
| Author | |
| ------ | |
| Written by Linus Torvalds <torvalds@osdl.org> | |
| Documentation | |
| ------------- | |
| Documentation by Junio C Hamano | |
| SEE ALSO | |
| -------- | |
| linkgit:git-rev-list[1] | |
| linkgit:git-repack[1] | |
| linkgit:git-prune-packed[1] | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |