Home Explore Blog CI



git

2nd chunk of `Documentation/git-pack-objects.adoc`
c60ab823dd93209568f466d760a2ee729a5cc2fc4cc021c70000000100000fa3
	as if all refs under `refs/` are specified to be
	included.

--include-tag::
	Include unasked-for annotated tags if the object they
	reference was included in the resulting packfile.  This
	can be useful to send new tags to native Git clients.

--stdin-packs::
	Read the basenames of packfiles (e.g., `pack-1234abcd.pack`)
	from the standard input, instead of object names or revision
	arguments. The resulting pack contains all objects listed in the
	included packs (those not beginning with `^`), excluding any
	objects listed in the excluded packs (beginning with `^`).
+
Incompatible with `--revs`, or options that imply `--revs` (such as
`--all`), with the exception of `--unpacked`, which is compatible.

--cruft::
	Packs unreachable objects into a separate "cruft" pack, denoted
	by the existence of a `.mtimes` file. Typically used by `git
	repack --cruft`. Callers provide a list of pack names and
	indicate which packs will remain in the repository, along with
	which packs will be deleted (indicated by the `-` prefix). The
	contents of the cruft pack are all objects not contained in the
	surviving packs which have not exceeded the grace period (see
	`--cruft-expiration` below), or which have exceeded the grace
	period, but are reachable from an other object which hasn't.
+
When the input lists a pack containing all reachable objects (and lists
all other packs as pending deletion), the corresponding cruft pack will
contain all unreachable objects (with mtime newer than the
`--cruft-expiration`) along with any unreachable objects whose mtime is
older than the `--cruft-expiration`, but are reachable from an
unreachable object whose mtime is newer than the `--cruft-expiration`).
+
Incompatible with `--unpack-unreachable`, `--keep-unreachable`,
`--pack-loose-unreachable`, `--stdin-packs`, as well as any other
options which imply `--revs`.

--cruft-expiration=<approxidate>::
	If specified, objects are eliminated from the cruft pack if they
	have an mtime older than `<approxidate>`. If unspecified (and
	given `--cruft`), then no objects are eliminated.

--window=<n>::
--depth=<n>::
	These two options affect how the objects contained in
	the pack are stored using delta compression.  The
	objects are first internally sorted by type, size and
	optionally names and compared against the other objects
	within --window to see if using delta compression saves
	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 maximum
depth is 4095.

--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.  The default
	is taken from the `pack.windowMemory` configuration variable.

--max-pack-size=<n>::
	In unusual scenarios, you may not be able to create files
	larger than a certain size on your filesystem, and this option
	can be used to tell the command to split the output packfile
	into multiple independent packfiles, each not larger than the
	given size. The size can be suffixed with
	"k", "m", or "g". The minimum size allowed is limited to 1 MiB.
	The default is unlimited, unless the config variable
	`pack.packSizeLimit` is set. Note that this option may result in
	a larger and slower repository; see the discussion in
	`pack.packSizeLimit`.

--honor-pack-keep::
	This flag causes an object already in a local pack that
	has a .keep file to be ignored, even if it would have
	otherwise been packed.

--keep-pack=<pack-name>::
	This

Title: Git Pack Objects Options
Summary
The git-pack-objects command offers various options for customizing the packing process, including handling of unreachable objects, delta compression, memory usage, pack size limits, and pack file management, to optimize the creation of packed archives for efficient transfer and storage of Git objects.