Home Explore Blog CI



git

2nd chunk of `Documentation/config/pack.adoc`
95c48521ead35c6adb626054d65f980545c225eaa8f493100000000100000cdf

pack.deltaCacheLimit::
	The maximum size of a delta, that is cached in
	linkgit:git-pack-objects[1]. This cache is used to speed up the
	writing object phase by not having to recompute the final delta
	result once the best match for all objects is found.
	Defaults to 1000. Maximum value is 65535.

pack.threads::
	Specifies the number of threads to spawn when searching for best
	delta matches.  This requires that linkgit:git-pack-objects[1]
	be compiled with pthreads otherwise this option is ignored with a
	warning. This is meant to reduce packing time on multiprocessor
	machines. The required amount of memory for the delta search window
	is however multiplied by the number of threads.
	Specifying 0 will cause Git to auto-detect the number of CPUs
	and set the number of threads accordingly.

pack.indexVersion::
	Specify the default pack index version.  Valid values are 1 for
	legacy pack index used by Git versions prior to 1.5.2, and 2 for
	the new pack index with capabilities for packs larger than 4 GB
	as well as proper protection against the repacking of corrupted
	packs.  Version 2 is the default.  Note that version 2 is enforced
	and this config option is ignored whenever the corresponding pack is
	larger than 2 GB.
+
If you have an old Git that does not understand the version 2 `*.idx` file,
cloning or fetching over a non-native protocol (e.g. "http")
that will copy both `*.pack` file and corresponding `*.idx` file from the
other side may give you a repository that cannot be accessed with your
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
the `*.idx` file.

pack.packSizeLimit::
	The maximum size of a pack.  This setting only affects
	packing to a file when repacking, i.e. the git:// protocol
	is unaffected.  It can be overridden by the `--max-pack-size`
	option of linkgit:git-repack[1].  Reaching this limit results
	in the creation of multiple packfiles.
+
Note that this option is rarely useful, and may result in a larger total
on-disk size (because Git will not store deltas between packs) and
worse runtime performance (object lookup within multiple packs is
slower than a single pack, and optimizations like reachability bitmaps
cannot cope with multiple packs).
+
If you need to actively run Git using smaller packfiles (e.g., because your
filesystem does not support large files), this option may help. But if
your goal is to transmit a packfile over a medium that supports limited
sizes (e.g., removable media that cannot store the whole repository),
you are likely better off creating a single large packfile and splitting
it using a generic multi-volume archive tool (e.g., Unix `split`).
+
The minimum size allowed is limited to 1 MiB. The default is unlimited.
Common unit suffixes of 'k', 'm', or 'g' are supported.

pack.useBitmaps::
	When true, git will use pack bitmaps (if available) when packing
	to stdout (e.g., during the server side of a fetch). Defaults to
	true. You should not generally need to turn this off unless
	you are debugging pack bitmaps.

pack.useBitmapBoundaryTraversal::
	When true, Git will use an experimental algorithm for computing
	reachability queries with bitmaps. Instead of building up
	complete bitmaps for all

Title: Git Pack Configuration Options
Summary
This section describes additional Git configuration options related to packing, including delta caching, threading, pack index version, pack size limits, and the use of pack bitmaps, which can impact performance, memory usage, and compatibility with older Git versions.