Merge branch 'mergetool' of git://repo.or.cz/git/mergetool into maint
[gitweb.git] / Documentation / git-index-pack.txt
index 9fa4847d56be0844b91a7cbe76ead6c45a9e5bed..a8a7f6f04bf5b95a5b325dc2df0adf9d94532bc5 100644 (file)
@@ -8,8 +8,10 @@ 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] [-v] [-o <index-file>] [<pack-file>]
+'git-index-pack' --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]
+                 [<pack-file>]
 
 
 DESCRIPTION
@@ -38,7 +40,10 @@ OPTIONS
        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.
+       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
+       gitlink::git-repack[1] .
 
 --fix-thin::
        It is possible for gitlink:git-pack-objects[1] to build
@@ -48,7 +53,38 @@ OPTIONS
        and they must be included in the pack for that pack to be self
        contained and indexable. Without this option any attempt to
        index a thin pack will fail. This option only makes sense in
-       conjonction with --stdin.
+       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 gitlink:git-repack[1] process from deleting
+       the newly constructed pack and index before refs can be
+       updated to use objects contained in the pack.
+
+--keep='why'::
+       Like --keep create a .keep file before moving the index into
+       its final destination, but rather than creating an empty file
+       place 'why' followed by an LF into the .keep file.  The 'why'
+       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.
+
+
+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 gitlink:git-repack[1]
+mentioned above.
 
 
 Author
@@ -62,4 +98,3 @@ Documentation by Sergey Vlasov
 GIT
 ---
 Part of the gitlink:git[7] suite
-