path: root/Documentation/git-pack-objects.txt
diff options
authorJunio C Hamano <>2005-07-14 07:08:05 (GMT)
committerLinus Torvalds <>2005-07-14 15:54:31 (GMT)
commit5f40520f8c4ca24b29295a36c7a7b6059ad5a888 (patch)
treef27165750dae7be4bcc2767d748463c60ec496eb /Documentation/git-pack-objects.txt
parent516236ce3fc6208c217e39d2c005cb162ad56486 (diff)
[PATCH] Documentation: packed GIT support commands.
This adds documentation for creating packed archives, inspecting, validating them, and unpacking them. Signed-off-by: Junio C Hamano <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'Documentation/git-pack-objects.txt')
1 files changed, 80 insertions, 0 deletions
diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt
new file mode 100644
index 0000000..ae6e88d
--- /dev/null
+++ b/Documentation/git-pack-objects.txt
@@ -0,0 +1,80 @@
+v0.1, July 2005
+git-pack-objects - Create a packed archive of objects.
+'git-pack-objects' [--incremental] [--window=N] [--depth=N] {--stdout | base-name} < object-list
+Reads list of objects from the standard input, and writes a packed
+archive with specified base-name, or to the standard output.
+A packed archive is an efficient way to transfer set of objects
+between two repositories, and also is an archival format which
+is efficient to access. The packed archive format (.pack) is
+designed to be unpackable without having anything else, but for
+random access, accompanied with the pack index file (.idx).
+'git-unpack-objects' command can read the packed archive and
+expand the objects contained in the pack into "one-file
+one-object" format; this is typically done by the smart-pull
+commands when a pack is created on-the-fly for efficient network
+transport by their peers.
+Placing both in pack subdirectory of $GIT_OBJECT_DIRECTORY (or
+any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
+enables GIT to read from such an archive.
+ Write into a pair of files (.pack and .idx), using
+ <base-name> to determine the name of the created file.
+ When this option is used, the two files are written in
+ <base-name>-<SHA1>.{pack,idx} files. <SHA1> is a hash
+ of object names (currently in random order so it does
+ not have any useful meaning) to make the resulting
+ filename reasonably unique, and written to the standard
+ output of the command.
+ Write the pack contents (what would have been writtin to
+ .pack file) out to the standard output.
+--window and --depth::
+ These two options affects 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.
+ This flag causes an object already in a pack ignored
+ even if it appears in the standard input.
+Written by Linus Torvalds <>
+Documentation by Junio C Hamano
+Part of the link:git.html[git] suite