commit-reach: make can_all_from_reach... linear
[gitweb.git] / Documentation / git-repack.txt
index 0c03eecff9cdda870294dd45ad203974688c0efc..d90e7907f4843a048caf11a2fae42a973d893d9a 100644 (file)
@@ -9,7 +9,7 @@ git-repack - Pack unpacked objects in a repository
 SYNOPSIS
 --------
 [verse]
-'git repack' [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [--window=<n>] [--depth=<n>]
+'git repack' [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [--window=<n>] [--depth=<n>] [--threads=<n>] [--keep-pack=<pack-name>]
 
 DESCRIPTION
 -----------
@@ -90,7 +90,12 @@ other objects in that pack they already have locally.
        space. `--depth` limits the maximum delta depth; making it too deep
        affects the performance on the unpacker side, because delta data needs
        to be applied that many times to get to the necessary object.
-       The default value for --window is 10 and --depth is 50.
++
+The default value for --window is 10 and --depth is 50. The maximum
+depth is 4095.
+
+--threads=<n>::
+       This option is passed through to `git pack-objects`.
 
 --window-memory=<n>::
        This option provides an additional limit on top of `--window`;
@@ -100,8 +105,10 @@ other objects in that pack they already have locally.
        out of memory with a large window, but still be able to take
        advantage of the large window for the smaller objects.  The
        size can be suffixed with "k", "m", or "g".
-       `--window-memory=0` makes memory usage unlimited, which is the
-       default.
+       `--window-memory=0` makes memory usage unlimited.  The default
+       is taken from the `pack.windowMemory` configuration variable.
+       Note that the actual memory usage will be the limit multiplied
+       by the number of threads used by linkgit:git-pack-objects[1].
 
 --max-pack-size=<n>::
        Maximum size of each output pack file. The size can be suffixed with
@@ -128,6 +135,26 @@ other objects in that pack they already have locally.
        with `-b` or `repack.writeBitmaps`, as it ensures that the
        bitmapped packfile has the necessary objects.
 
+--keep-pack=<pack-name>::
+       Exclude the given pack from repacking. This is the equivalent
+       of having `.keep` file on the pack. `<pack-name>` is the the
+       pack file name without leading directory (e.g. `pack-123.pack`).
+       The option could be specified multiple times to keep multiple
+       packs.
+
+--unpack-unreachable=<when>::
+       When loosening unreachable objects, do not bother loosening any
+       objects older than `<when>`. This can be used to optimize out
+       the write of any objects that would be immediately pruned by
+       a follow-up `git prune`.
+
+-k::
+--keep-unreachable::
+       When used with `-ad`, any unreachable objects from existing
+       packs will be appended to the end of the packfile instead of
+       being removed. In addition, any unreachable loose objects will
+       be packed (and their loose counterparts removed).
+
 Configuration
 -------------