git-multi-pack-index(1)
=======================

NAME
----
git-multi-pack-index - Write and verify multi-pack-indexes


SYNOPSIS
--------
[verse]
'git multi-pack-index' [--object-dir=<dir>] [--[no-]bitmap] <sub-command>

DESCRIPTION
-----------
Write or verify a multi-pack-index (MIDX) file.

OPTIONS
-------

--object-dir=<dir>::
	Use given directory for the location of Git objects. We check
	`<dir>/packs/multi-pack-index` for the current MIDX file, and
	`<dir>/packs` for the pack-files to index.
+
`<dir>` must be an alternate of the current repository.

--progress::
--no-progress::
	Turn progress on/off explicitly. If neither is specified, progress is
	shown if standard error is connected to a terminal. Supported by
	sub-commands `write`, `verify`, `expire`, and `repack.

The following subcommands are available:

write::
	Write a new MIDX file. The following options are available for
	the `write` sub-command:
+
--
	--preferred-pack=<pack>::
		When specified, break ties in favor of this pack when
		there are additional copies of its objects in other
		packs. Ties for objects not found in the preferred
		pack are always resolved in favor of the copy in the
		pack with the highest mtime. If unspecified, the pack
		with the lowest mtime is used by default. The
		preferred pack must have at least one object.

	--[no-]bitmap::
		Control whether or not a multi-pack bitmap is written.

	--stdin-packs::
		Write a multi-pack index containing only the set of
		line-delimited pack index basenames provided over stdin.

	--refs-snapshot=<path>::
		With `--bitmap`, optionally specify a file which
		contains a "refs snapshot" taken prior to repacking.
+
A reference snapshot is composed of line-delimited OIDs corresponding to
the reference tips, usually taken by `git repack` prior to generating a
new pack. A line may optionally start with a `+` character to indicate
that the reference which corresponds to that OID is "preferred" (see
linkgit:git-config[1]'s `pack.preferBitmapTips`.)
+
The file given at `<path>` is expected to be readable, and can contain
duplicates. (If a given OID is given more than once, it is marked as
preferred if at least one instance of it begins with the special `+`
marker).

	--incremental::
		Write an incremental MIDX file containing only objects
		and packs not present in an existing MIDX layer.
		Migrates non-incremental MIDXs to incremental ones when
		necessary. Incompatible with `--bitmap`.
--

verify::
	Verify the contents of the MIDX file.

expire::
	Delete the pack-files that are tracked by the MIDX file, but
	have no objects referenced by the MIDX (with the exception of
	`.keep` packs and cruft packs). Rewrite the MIDX file afterward
	to remove all references to these pack-files.
+
NOTE: this mode is incompatible with incremental MIDX files.

repack::
	Create a new pack-file containing objects in small pack-files
	referenced by the multi-pack-index. If the size given by the
	`--batch-size=<size>` argument is zero, then create a pack
	containing all objects referenced by the multi-pack-index. For
	a non-zero batch size, Select the pack-files by examining packs
	from oldest-to-newest, computing the "expected size" by counting
	the number of objects in the pack referenced by the
	multi-pack-index, then divide by the total number of objects in
	the pack and multiply by the pack size. We select packs with
	expected size below the batch size until the set of packs have
	total expected size at least the batch size, or all pack-files
	are considered. If only one pack-file is selected, then do
	nothing. If a new pack-file is created, rewrite the
	multi-pack-index to reference the new pack-file. A later run of
	'git multi-pack-index expire' will delete the pack-files that
	were part of this batch.
+
If `repack.packKeptObjects` is `false`, then any pack-files with an
associated `.keep` file will not be selected for the batch to repack.
+
NOTE: this mode is incompatible with incremental MIDX files.

EXAMPLES
--------

* Write a MIDX file for the packfiles in the current `.git` directory.
+
-----------------------------------------------
$ git multi-pack-index write
-----------------------------------------------

* Write a MIDX file for the packfiles in the current `.git` directory with a
corresponding bitmap.
+
-------------------------------------------------------------
$ git multi-pack-index write --preferred-pack=<pack> --bitmap
-------------------------------------------------------------

* Write a MIDX file for the packfiles in an alternate object store.
+
-----------------------------------------------
$ git multi-pack-index --object-dir <alt> write
-----------------------------------------------

* Verify the MIDX file for the packfiles in the current `.git` directory.
+
-----------------------------------------------
$ git multi-pack-index verify
-----------------------------------------------


SEE ALSO
--------
See link:technical/multi-pack-index.html[The Multi-Pack-Index Design
Document] and linkgit:gitformat-pack[5] for more information on the
multi-pack-index feature and its file format.


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