path.c: refactor relative_path(), not only strip prefix
[gitweb.git] / Documentation / git-index-pack.txt
index 71ce557276fd1bfe5e3ee1d3f03f94e066f23e81..bde8eec30db19accd80d960518b45fbc29f37bf8 100644 (file)
@@ -8,7 +8,10 @@ git-index-pack - Build pack index file for an existing packed archive
 
 SYNOPSIS
 --------
-'git-index-pack' [-o <index-file>] <pack-file>
+[verse]
+'git index-pack' [-v] [-o <index-file>] <pack-file>
+'git index-pack' --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]
+                 [<pack-file>]
 
 
 DESCRIPTION
@@ -16,11 +19,14 @@ 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.
+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
@@ -29,16 +35,66 @@ OPTIONS
        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.
 
-Author
-------
-Written by Sergey Vlasov <vsu@altlinux.ru>
+--strict::
+       Die, if the pack contains broken objects or links.
 
-Documentation
--------------
-Documentation by Sergey Vlasov
+--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 gitlink:git[7] suite
-
+Part of the linkgit:git[1] suite