]>
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 JH |
11 | [verse] |
12 | 'git-pack-objects' [-q] [--no-reuse-delta] [--non-empty] | |
13 | [--local] [--incremental] [--window=N] [--depth=N] | |
4321134c | 14 | [--revs [--unpacked | --all]*] [--stdout | base-name] < object-list |
5f40520f JH |
15 | |
16 | ||
17 | DESCRIPTION | |
18 | ----------- | |
19 | Reads list of objects from the standard input, and writes a packed | |
20 | archive with specified base-name, or to the standard output. | |
21 | ||
22 | A packed archive is an efficient way to transfer set of objects | |
23 | between two repositories, and also is an archival format which | |
24 | is efficient to access. The packed archive format (.pack) is | |
25 | designed to be unpackable without having anything else, but for | |
26 | random access, accompanied with the pack index file (.idx). | |
27 | ||
28 | 'git-unpack-objects' command can read the packed archive and | |
29 | expand the objects contained in the pack into "one-file | |
30 | one-object" format; this is typically done by the smart-pull | |
31 | commands when a pack is created on-the-fly for efficient network | |
32 | transport by their peers. | |
33 | ||
2c6e4771 | 34 | Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or |
5f40520f | 35 | any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) |
72e9340c | 36 | enables git to read from such an archive. |
5f40520f | 37 | |
ca5381d4 JH |
38 | In a packed archive, an object is either stored as a compressed |
39 | whole, or as a difference from some other object. The latter is | |
40 | often called a delta. | |
41 | ||
5f40520f JH |
42 | |
43 | OPTIONS | |
44 | ------- | |
45 | base-name:: | |
46 | Write into a pair of files (.pack and .idx), using | |
47 | <base-name> to determine the name of the created file. | |
48 | When this option is used, the two files are written in | |
49 | <base-name>-<SHA1>.{pack,idx} files. <SHA1> is a hash | |
50 | of object names (currently in random order so it does | |
51 | not have any useful meaning) to make the resulting | |
52 | filename reasonably unique, and written to the standard | |
53 | output of the command. | |
54 | ||
55 | --stdout:: | |
89438677 | 56 | Write the pack contents (what would have been written to |
5f40520f JH |
57 | .pack file) out to the standard output. |
58 | ||
4321134c JH |
59 | --revs:: |
60 | Read the revision arguments from the standard input, instead of | |
61 | individual object names. The revision arguments are processed | |
62 | the same way as gitlink:git-rev-list[1] with `--objects` flag | |
63 | uses its `commit` arguments to build the list of objects it | |
64 | outputs. The objects on the resulting list are packed. | |
65 | ||
66 | --unpacked:: | |
67 | This implies `--revs`. When processing the list of | |
68 | revision arguments read from the standard input, limit | |
69 | the objects packed to those that are not already packed. | |
70 | ||
71 | --all:: | |
72 | This implies `--revs`. In addition to the list of | |
73 | revision arguments read from the standard input, pretend | |
74 | as if all refs under `$GIT_DIR/refs` are specifed to be | |
75 | included. | |
76 | ||
5f40520f JH |
77 | --window and --depth:: |
78 | These two options affects how the objects contained in | |
79 | the pack are stored using delta compression. The | |
80 | objects are first internally sorted by type, size and | |
81 | optionally names and compared against the other objects | |
82 | within --window to see if using delta compression saves | |
83 | space. --depth limits the maximum delta depth; making | |
84 | it too deep affects the performance on the unpacker | |
85 | side, because delta data needs to be applied that many | |
86 | times to get to the necessary object. | |
87 | ||
88 | --incremental:: | |
89 | This flag causes an object already in a pack ignored | |
90 | even if it appears in the standard input. | |
91 | ||
12ea5bea JH |
92 | --local:: |
93 | This flag is similar to `--incremental`; instead of | |
94 | ignoring all packed objects, it only ignores objects | |
95 | that are packed and not in the local object store | |
96 | (i.e. borrowed from an alternate). | |
5f40520f | 97 | |
63ae26f8 NW |
98 | --non-empty:: |
99 | Only create a packed archive if it would contain at | |
100 | least one object. | |
101 | ||
ca5381d4 JH |
102 | -q:: |
103 | This flag makes the command not to report its progress | |
104 | on the standard error stream. | |
105 | ||
106 | --no-reuse-delta:: | |
107 | When creating a packed archive in a repository that | |
108 | has existing packs, the command reuses existing deltas. | |
109 | This sometimes results in a slightly suboptimal pack. | |
110 | This flag tells the command not to reuse existing deltas | |
111 | but compute them from scratch. | |
112 | ||
113 | ||
5f40520f JH |
114 | Author |
115 | ------ | |
116 | Written by Linus Torvalds <torvalds@osdl.org> | |
117 | ||
118 | Documentation | |
119 | ------------- | |
120 | Documentation by Junio C Hamano | |
121 | ||
46444f51 | 122 | See Also |
e31bb3bb | 123 | -------- |
4321134c | 124 | gitlink:git-rev-list[1] |
df8baa42 JF |
125 | gitlink:git-repack[1] |
126 | gitlink:git-prune-packed[1] | |
e31bb3bb | 127 | |
5f40520f JH |
128 | GIT |
129 | --- | |
a7154e91 | 130 | Part of the gitlink:git[7] suite |
5f40520f | 131 |