summaryrefslogtreecommitdiff
path: root/Documentation/git-index-pack.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-index-pack.txt')
-rw-r--r--Documentation/git-index-pack.txt103
1 files changed, 103 insertions, 0 deletions
diff --git a/Documentation/git-index-pack.txt b/Documentation/git-index-pack.txt
new file mode 100644
index 0000000000..7a4e055520
--- /dev/null
+++ b/Documentation/git-index-pack.txt
@@ -0,0 +1,103 @@
+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.
+
+--check-self-contained-and-connected::
+ Die if the pack contains broken links. For internal use only.
+
+--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 SHA-1 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