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='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.

--strict::
	Die, if the pack contains broken objects or links.


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.


Author
------
Written by Sergey Vlasov <vsu@altlinux.ru>

Documentation
-------------
Documentation by Sergey Vlasov

GIT
---
Part of the linkgit:git[1] suite
