unpack-trees.c: assume submodules are clean during check-out
[gitweb.git] / Documentation / git-repack.txt
index 0d70c9f78240a5ca194168a1c83a926dcb97443f..5283ef84a9f4083b1c79316286c3278679a41699 100644 (file)
@@ -14,7 +14,8 @@ DESCRIPTION
 -----------
 
 This script is used to combine all objects that do not currently
-reside in a "pack", into a pack.
+reside in a "pack", into a pack.  It can also be used to re-organise
+existing packs into a single, more efficient pack.
 
 A pack is a collection of objects, individually compressed, with
 delta compression applied, stored in a single file, with an
@@ -28,11 +29,13 @@ OPTIONS
 
 -a::
        Instead of incrementally packing the unpacked objects,
-       pack everything available into a single pack.
+       pack everything referenced into a single pack.
        Especially useful when packing a repository that is used
        for private development and there is no need to worry
-       about people fetching via dumb file transfer protocols
-       from it.  Use with '-d'.
+       about people fetching via dumb protocols from it.  Use
+       with '-d'.  This will clean up the objects that `git prune`
+       leaves behind, but `git fsck --full` shows as
+       dangling.
 
 -d::
        After packing, if the newly created packs make some
@@ -63,7 +66,23 @@ OPTIONS
        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 10.
+       The default value for --window is 10 and --depth is 50.
+
+--window-memory=[N]::
+       This option provides an additional limit on top of `--window`;
+       the window size will dynamically scale down so as to not take
+       up more than N bytes in memory.  This is useful in
+       repositories with a mix of large and small objects to not run
+       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.
+
+--max-pack-size=<n>::
+       Maximum size of each output packfile, expressed in MiB.
+       If specified,  multiple packfiles may be created.
+       The default is unlimited.
 
 
 Configuration
@@ -96,4 +115,3 @@ gitlink:git-prune-packed[1]
 GIT
 ---
 Part of the gitlink:git[7] suite
-