| git-index-pack(1) |
| ================= |
| |
| NAME |
| ---- |
| git-index-pack - Build pack index file for an existing packed archive |
| |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| 'git index-pack' [-v] [-o <index-file>] <pack-file> |
| 'git index-pack' --stdin [--fix-thin] [--keep] [-v] [-o <index-file>] |
| [<pack-file>] |
| |
| |
| DESCRIPTION |
| ----------- |
| Reads a packed archive (.pack) from the specified file, and |
| builds a pack index file (.idx) for it. The packed archive |
| together with the pack index can then be placed in the |
| objects/pack/ directory of a git repository. |
| |
| |
| OPTIONS |
| ------- |
| -v:: |
| Be verbose about what is going on, including progress status. |
| |
| -o <index-file>:: |
| Write the generated pack index into the specified |
| file. Without this option the name of pack index |
| file is constructed from the name of packed archive |
| file by replacing .pack with .idx (and the program |
| fails if the name of packed archive does not end |
| with .pack). |
| |
| --stdin:: |
| When this flag is provided, the pack is read from stdin |
| instead and a copy is then written to <pack-file>. If |
| <pack-file> is not specified, the pack is written to |
| objects/pack/ directory of the current git repository with |
| a default name determined from the pack content. If |
| <pack-file> is not specified consider using --keep to |
| prevent a race condition between this process and |
| 'git repack'. |
| |
| --fix-thin:: |
| Fix a "thin" pack produced by `git pack-objects --thin` (see |
| linkgit:git-pack-objects[1] for details) by adding the |
| excluded objects the deltified objects are based on to the |
| pack. This option only makes sense in conjunction with --stdin. |
| |
| --keep:: |
| Before moving the index into its final destination |
| create an empty .keep file for the associated pack file. |
| This option is usually necessary with --stdin to prevent a |
| simultaneous 'git repack' process from deleting |
| the newly constructed pack and index before refs can be |
| updated to use objects contained in the pack. |
| |
| --keep=<msg>:: |
| Like --keep create a .keep file before moving the index into |
| its final destination, but rather than creating an empty file |
| place '<msg>' followed by an LF into the .keep file. The '<msg>' |
| message can later be searched for within all .keep files to |
| locate any which have outlived their usefulness. |
| |
| --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. |
| |
| --strict:: |
| Die, if the pack contains broken objects or links. |
| |
| --threads=<n>:: |
| Specifies the number of threads to spawn when resolving |
| deltas. This requires that index-pack 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 use maximum 3 threads. |
| |
| |
| Note |
| ---- |
| |
| Once the index has been created, the list of object names is sorted |
| and the SHA1 hash of that list is printed to stdout. If --stdin was |
| also used then this is prefixed by either "pack\t", or "keep\t" if a |
| new .keep file was successfully created. This is useful to remove a |
| .keep file used as a lock to prevent the race with 'git repack' |
| mentioned above. |
| |
| GIT |
| --- |
| Part of the linkgit:git[1] suite |