# git-multi-pack-index

## NAME



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


## SYNOPSIS



           _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.
    
           --[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 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
    


## GIT



           Part of the git(1) suite
    


## NOTES



            1. The Multi-Pack-Index Design Document
               file:///home/mtk/share/doc/git-doc/technical/multi-pack-index.html
    


* * *