You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
7.2 KiB
202 lines
7.2 KiB
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 unpackable without having anything else, but for |
|
random access, accompanied with the pack index file (.idx). |
|
|
|
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. |
|
|
|
'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 linkgit:git-rev-list[1] with `--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. |
|
|
|
--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. |
|
|
|
--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 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. |
|
|
|
--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[7] suite
|
|
|