CodingGuidelines: Add a note to avoid assignments inside if()
[gitweb.git] / Documentation / git-repack.txt
index c33a512ffb0bfaef8c920ecff7c2630d2eabf0b9..f81a6607dec7bbe9c985106770ecae8b5f01f3c0 100644 (file)
@@ -8,13 +8,14 @@ git-repack - Pack unpacked objects in a repository
 
 SYNOPSIS
 --------
-'git-repack' [-a] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]
+'git-repack' [-a] [-A] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]
 
 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,32 +29,49 @@ 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.
+
+-A::
+       Same as `-a`, but any unreachable objects in a previous
+       pack become loose, unpacked objects, instead of being
+       left in the old pack.  Unreachable objects are never
+       intentionally added to a pack, even when repacking.
+       When used with '-d', this option
+       prevents unreachable objects from being immediately
+       deleted by way of being left in the old pack and then
+       removed.  Instead, the loose unreachable objects
+       will be pruned according to normal expiry rules
+       with the next linkgit:git-gc[1].
 
 -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
-        `git update-server-info`.
+       Do not update the server information with
+       `git update-server-info`.  This option skips
+       updating local catalog files needed to publish
+       this repository (or a direct copy of it)
+       over HTTP or FTP.  See gitlink:git-update-server-info[1].
 
 --window=[N], --depth=[N]::
        These two options affect how the objects contained in the pack are
@@ -65,6 +83,17 @@ 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.
@@ -95,9 +124,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