]>
Commit | Line | Data |
---|---|---|
6a257f03 DS |
1 | git-multi-pack-index(1) |
2 | ======================= | |
3 | ||
4 | NAME | |
5 | ---- | |
6 | git-multi-pack-index - Write and verify multi-pack-indexes | |
7 | ||
8 | ||
9 | SYNOPSIS | |
10 | -------- | |
11 | [verse] | |
844cc433 | 12 | 'git multi-pack-index' [--object-dir=<dir>] [--[no-]bitmap] <sub-command> |
6a257f03 DS |
13 | |
14 | DESCRIPTION | |
15 | ----------- | |
16 | Write or verify a multi-pack-index (MIDX) file. | |
17 | ||
18 | OPTIONS | |
19 | ------- | |
20 | ||
21 | --object-dir=<dir>:: | |
22 | Use given directory for the location of Git objects. We check | |
23 | `<dir>/packs/multi-pack-index` for the current MIDX file, and | |
24 | `<dir>/packs` for the pack-files to index. | |
f57a7396 TB |
25 | + |
26 | `<dir>` must be an alternate of the current repository. | |
6a257f03 | 27 | |
680cba2c WB |
28 | --[no-]progress:: |
29 | Turn progress on/off explicitly. If neither is specified, progress is | |
0394f8d0 TB |
30 | shown if standard error is connected to a terminal. Supported by |
31 | sub-commands `write`, `verify`, `expire`, and `repack. | |
680cba2c | 32 | |
81efa161 DS |
33 | The following subcommands are available: |
34 | ||
a3407730 | 35 | write:: |
9218c6a4 TB |
36 | Write a new MIDX file. The following options are available for |
37 | the `write` sub-command: | |
38 | + | |
39 | -- | |
40 | --preferred-pack=<pack>:: | |
41 | Optionally specify the tie-breaking pack used when | |
5d3cd09a TB |
42 | multiple packs contain the same object. `<pack>` must |
43 | contain at least one object. If not given, ties are | |
44 | broken in favor of the pack with the lowest mtime. | |
c528e179 TB |
45 | |
46 | --[no-]bitmap:: | |
47 | Control whether or not a multi-pack bitmap is written. | |
6fb22ca4 TB |
48 | |
49 | --stdin-packs:: | |
50 | Write a multi-pack index containing only the set of | |
51 | line-delimited pack index basenames provided over stdin. | |
08944d1c TB |
52 | |
53 | --refs-snapshot=<path>:: | |
54 | With `--bitmap`, optionally specify a file which | |
55 | contains a "refs snapshot" taken prior to repacking. | |
56 | + | |
57 | A reference snapshot is composed of line-delimited OIDs corresponding to | |
58 | the reference tips, usually taken by `git repack` prior to generating a | |
59 | new pack. A line may optionally start with a `+` character to indicate | |
60 | that the reference which corresponds to that OID is "preferred" (see | |
61 | linkgit:git-config[1]'s `pack.preferBitmapTips`.) | |
62 | + | |
63 | The file given at `<path>` is expected to be readable, and can contain | |
64 | duplicates. (If a given OID is given more than once, it is marked as | |
65 | preferred if at least one instance of it begins with the special `+` | |
66 | marker). | |
9218c6a4 | 67 | -- |
a3407730 | 68 | |
56ee7ff1 | 69 | verify:: |
81efa161 | 70 | Verify the contents of the MIDX file. |
56ee7ff1 | 71 | |
cff97116 DS |
72 | expire:: |
73 | Delete the pack-files that are tracked by the MIDX file, but | |
74 | have no objects referenced by the MIDX. Rewrite the MIDX file | |
75 | afterward to remove all references to these pack-files. | |
76 | ||
2af890bb DS |
77 | repack:: |
78 | Create a new pack-file containing objects in small pack-files | |
79 | referenced by the multi-pack-index. If the size given by the | |
80 | `--batch-size=<size>` argument is zero, then create a pack | |
81 | containing all objects referenced by the multi-pack-index. For | |
82 | a non-zero batch size, Select the pack-files by examining packs | |
83 | from oldest-to-newest, computing the "expected size" by counting | |
84 | the number of objects in the pack referenced by the | |
85 | multi-pack-index, then divide by the total number of objects in | |
86 | the pack and multiply by the pack size. We select packs with | |
87 | expected size below the batch size until the set of packs have | |
1eb22c7d DS |
88 | total expected size at least the batch size, or all pack-files |
89 | are considered. If only one pack-file is selected, then do | |
90 | nothing. If a new pack-file is created, rewrite the | |
91 | multi-pack-index to reference the new pack-file. A later run of | |
92 | 'git multi-pack-index expire' will delete the pack-files that | |
93 | were part of this batch. | |
3ce4ca0a DS |
94 | + |
95 | If `repack.packKeptObjects` is `false`, then any pack-files with an | |
96 | associated `.keep` file will not be selected for the batch to repack. | |
2af890bb | 97 | |
a3407730 DS |
98 | |
99 | EXAMPLES | |
100 | -------- | |
101 | ||
85bc0065 | 102 | * Write a MIDX file for the packfiles in the current `.git` directory. |
a3407730 DS |
103 | + |
104 | ----------------------------------------------- | |
105 | $ git multi-pack-index write | |
106 | ----------------------------------------------- | |
107 | ||
85bc0065 | 108 | * Write a MIDX file for the packfiles in the current `.git` directory with a |
c528e179 TB |
109 | corresponding bitmap. |
110 | + | |
111 | ------------------------------------------------------------- | |
112 | $ git multi-pack-index write --preferred-pack=<pack> --bitmap | |
113 | ------------------------------------------------------------- | |
114 | ||
a3407730 DS |
115 | * Write a MIDX file for the packfiles in an alternate object store. |
116 | + | |
117 | ----------------------------------------------- | |
118 | $ git multi-pack-index --object-dir <alt> write | |
119 | ----------------------------------------------- | |
120 | ||
85bc0065 | 121 | * Verify the MIDX file for the packfiles in the current `.git` directory. |
56ee7ff1 DS |
122 | + |
123 | ----------------------------------------------- | |
124 | $ git multi-pack-index verify | |
125 | ----------------------------------------------- | |
126 | ||
6a257f03 DS |
127 | |
128 | SEE ALSO | |
129 | -------- | |
130 | See link:technical/multi-pack-index.html[The Multi-Pack-Index Design | |
977c47b4 ÆAB |
131 | Document] and linkgit:gitformat-pack[5] for more information on the |
132 | multi-pack-index feature and its file format. | |
6a257f03 DS |
133 | |
134 | ||
135 | GIT | |
136 | --- | |
137 | Part of the linkgit:git[1] suite |