Merge git://repo.or.cz/git-gui
[gitweb.git] / Documentation / git-repack.txt
index cc3b0b21c727349eb3a51d9837bc006b987537c3..3d957492f8aea7c2760f7274605d71f5a25349b2 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-organize
+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,28 +29,30 @@ 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
        existing packs redundant, remove the redundant packs.
-       Also runs gitlink:git-prune-packed[1].
+       Also runs linkgit:git-prune-packed[1].
 
 -l::
         Pass the `--local` option to `git pack-objects`, see
-        gitlink:git-pack-objects[1].
+       linkgit:git-pack-objects[1].
 
 -f::
         Pass the `--no-reuse-delta` option to `git pack-objects`, see
-        gitlink:git-pack-objects[1].
+       linkgit:git-pack-objects[1].
 
 -q::
         Pass the `-q` option to `git pack-objects`, see
-        gitlink:git-pack-objects[1].
+       linkgit:git-pack-objects[1].
 
 -n::
         Do not update the server information with
@@ -65,6 +68,22 @@ OPTIONS
        to be applied that many times to get to the necessary object.
        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
 -------------
@@ -90,10 +109,9 @@ Documentation by Ryan Anderson <ryan@michonline.com>
 
 See Also
 --------
-gitlink:git-pack-objects[1]
-gitlink:git-prune-packed[1]
+linkgit:git-pack-objects[1]
+linkgit:git-prune-packed[1]
 
 GIT
 ---
-Part of the gitlink:git[7] suite
-
+Part of the linkgit:git[7] suite