docs: move pack format docs to man section 5

Continue the move of existing Documentation/technical/* protocol and
file-format documentation into our main documentation space by moving
the various documentation pertaining to the *.pack format and related
files, and updating things that refer to it to link to the new
location.

By moving these we can properly link from the newly created
gitformat-commit-graph to a gitformat-chunk-format page.

Integrating "Documentation/technical/bitmap-format.txt" and
"Documentation/technical/cruft-packs.txt" might logically be part of
this change, but as those cover parts of the wider "pack
format" (including associated files) that's documented outside of
"Documentation/technical/pack-format.txt" let's leave those for now,
subsequent commit(s) will address those.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-08-04 18:28:39 +02:00 committed by Junio C Hamano
parent 20516890dc
commit 977c47b46d
15 changed files with 68 additions and 22 deletions

View File

@ -25,8 +25,10 @@ MAN1_TXT += gitweb.txt
# man5 / man7 guides (note: new guides should also be added to command-list.txt) # man5 / man7 guides (note: new guides should also be added to command-list.txt)
MAN5_TXT += gitattributes.txt MAN5_TXT += gitattributes.txt
MAN5_TXT += gitformat-bundle.txt MAN5_TXT += gitformat-bundle.txt
MAN5_TXT += gitformat-chunk.txt
MAN5_TXT += gitformat-commit-graph.txt MAN5_TXT += gitformat-commit-graph.txt
MAN5_TXT += gitformat-index.txt MAN5_TXT += gitformat-index.txt
MAN5_TXT += gitformat-pack.txt
MAN5_TXT += gitformat-signature.txt MAN5_TXT += gitformat-signature.txt
MAN5_TXT += githooks.txt MAN5_TXT += githooks.txt
MAN5_TXT += gitignore.txt MAN5_TXT += gitignore.txt
@ -108,7 +110,6 @@ TECH_DOCS += technical/hash-function-transition
TECH_DOCS += technical/http-protocol TECH_DOCS += technical/http-protocol
TECH_DOCS += technical/long-running-process-protocol TECH_DOCS += technical/long-running-process-protocol
TECH_DOCS += technical/multi-pack-index TECH_DOCS += technical/multi-pack-index
TECH_DOCS += technical/pack-format
TECH_DOCS += technical/pack-heuristics TECH_DOCS += technical/pack-heuristics
TECH_DOCS += technical/parallel-checkout TECH_DOCS += technical/parallel-checkout
TECH_DOCS += technical/partial-clone TECH_DOCS += technical/partial-clone

View File

@ -166,7 +166,7 @@ permuted into their appropriate location when writing a new bitmap.
pack.writeReverseIndex:: pack.writeReverseIndex::
When true, git will write a corresponding .rev file (see: When true, git will write a corresponding .rev file (see:
link:../technical/pack-format.html[Documentation/technical/pack-format.txt]) linkgit:gitformat-pack[5])
for each new packfile that it writes in all places except for for each new packfile that it writes in all places except for
linkgit:git-fast-import[1] and in the bulk checkin mechanism. linkgit:git-fast-import[1] and in the bulk checkin mechanism.
Defaults to false. Defaults to false.

View File

@ -57,8 +57,7 @@ size. That they're "thin" under the hood is merely noted here as a
curiosity, and as a reference to other documentation. curiosity, and as a reference to other documentation.
See linkgit:gitformat-bundle[5] for more details and the discussion of See linkgit:gitformat-bundle[5] for more details and the discussion of
"thin pack" in link:technical/pack-format.html[the pack format "thin pack" in linkgit:gitformat-pack[5] for further details.
documentation] for further details.
OPTIONS OPTIONS
------- -------

View File

@ -128,8 +128,8 @@ $ git multi-pack-index verify
SEE ALSO SEE ALSO
-------- --------
See link:technical/multi-pack-index.html[The Multi-Pack-Index Design See link:technical/multi-pack-index.html[The Multi-Pack-Index Design
Document] and link:technical/pack-format.html[The Multi-Pack-Index Document] and linkgit:gitformat-pack[5] for more information on the
Format] for more information on the multi-pack-index feature. multi-pack-index feature and its file format.
GIT GIT

View File

@ -1,11 +1,24 @@
Chunk-based file formats gitformat-chunk(5)
======================== ==================
NAME
----
gitformat-chunk - Chunk-based file formats
SYNOPSIS
--------
Used by linkgit:gitformat-commit-graph[5] and the "MIDX" format (see
the pack format documentation in linkgit:gitformat-pack[5]).
DESCRIPTION
-----------
Some file formats in Git use a common concept of "chunks" to describe Some file formats in Git use a common concept of "chunks" to describe
sections of the file. This allows structured access to a large file by sections of the file. This allows structured access to a large file by
scanning a small "table of contents" for the remaining data. This common scanning a small "table of contents" for the remaining data. This common
format is used by the `commit-graph` and `multi-pack-index` files. See format is used by the `commit-graph` and `multi-pack-index` files. See
link:technical/pack-format.html[the `multi-pack-index` format] and the `multi-pack-index` format in linkgit:gitformat-pack[5] and
the `commit-graph` format in linkgit:gitformat-commit-graph[5] for the `commit-graph` format in linkgit:gitformat-commit-graph[5] for
how they use the chunks to describe structured data. how they use the chunks to describe structured data.
@ -113,4 +126,8 @@ for future formats:
* *multi-pack-index:* see `write_midx_internal()` and `load_multi_pack_index()` * *multi-pack-index:* see `write_midx_internal()` and `load_multi_pack_index()`
in `midx.c` for how the chunk-format API is used to write and in `midx.c` for how the chunk-format API is used to write and
parse the multi-pack-index file format documented in parse the multi-pack-index file format documented in
link:technical/pack-format.html[the multi-pack-index file format]. the multi-pack-index file format section of linkgit:gitformat-pack[5].
GIT
---
Part of the linkgit:git[1] suite

View File

@ -75,7 +75,7 @@ All multi-byte numbers are in network byte order.
ID appears at most once. ID appears at most once.
The CHUNK LOOKUP matches the table of contents from The CHUNK LOOKUP matches the table of contents from
link:technical/chunk-format.html[the chunk-based file format]. the chunk-based file format, see linkgit:gitformat-chunk[5]
The remaining data in the body is described one chunk at a time, and The remaining data in the body is described one chunk at a time, and
these chunks may be given in any order. Chunks are required unless these chunks may be given in any order. Chunks are required unless

View File

@ -141,7 +141,7 @@ Git index format
entry is encoded as if the path name for the previous entry is an entry is encoded as if the path name for the previous entry is an
empty string). At the beginning of an entry, an integer N in the empty string). At the beginning of an entry, an integer N in the
variable width encoding (the same encoding as the offset is encoded variable width encoding (the same encoding as the offset is encoded
for OFS_DELTA pack entries; see pack-format.txt) is stored, followed for OFS_DELTA pack entries; see linkgit:gitformat-pack[5]) is stored, followed
by a NUL-terminated string S. Removing N bytes from the end of the by a NUL-terminated string S. Removing N bytes from the end of the
path name for the previous entry, and replacing it with the string S path name for the previous entry, and replacing it with the string S
yields the path name for this entry. yields the path name for this entry.

View File

@ -1,5 +1,29 @@
Git pack format gitformat-pack(5)
=============== =================
NAME
----
gitformat-pack - Git pack format
SYNOPSIS
--------
[verse]
$GIT_DIR/objects/pack/pack-*.{pack,idx}
$GIT_DIR/objects/pack/pack-*.rev
$GIT_DIR/objects/pack/multi-pack-index
DESCRIPTION
-----------
The Git pack format is now Git stores most of its primary repository
data. Over the lietime af a repository loose objects (if any) and
smaller packs are consolidated into larger pack(s). See
linkgit:git-gc[1] and linkgit:git-pack-objects[1].
The pack format is also used over-the-wire, see
e.g. linkgit:gitprotocol-v2[5], as well as being a part of
other container formats in the case of linkgit:gitformat-bundle[5].
== Checksums and object IDs == Checksums and object IDs
@ -356,7 +380,7 @@ CHUNK LOOKUP:
using the next chunk position if necessary.) using the next chunk position if necessary.)
The CHUNK LOOKUP matches the table of contents from The CHUNK LOOKUP matches the table of contents from
link:technical/chunk-format.html[the chunk-based file format]. the chunk-based file format, see linkgit:gitformat-chunk[5].
The remaining data in the body is described one chunk at a time, and The remaining data in the body is described one chunk at a time, and
these chunks may be given in any order. Chunks are required unless these chunks may be given in any order. Chunks are required unless
@ -482,3 +506,7 @@ packs arranged in MIDX order (with the preferred pack coming first).
The MIDX's reverse index is stored in the optional 'RIDX' chunk within The MIDX's reverse index is stored in the optional 'RIDX' chunk within
the MIDX itself. the MIDX itself.
GIT
---
Part of the linkgit:git[1] suite

View File

@ -467,7 +467,7 @@ Now that the client and server have finished negotiation about what
the minimal amount of data that needs to be sent to the client is, the server the minimal amount of data that needs to be sent to the client is, the server
will construct and send the required data in packfile format. will construct and send the required data in packfile format.
See pack-format.txt for what the packfile itself actually looks like. See linkgit:gitformat-pack[5] for what the packfile itself actually looks like.
If 'side-band' or 'side-band-64k' capabilities have been specified by If 'side-band' or 'side-band-64k' capabilities have been specified by
the client, the server will send the packfile data multiplexed. the client, the server will send the packfile data multiplexed.

View File

@ -68,7 +68,7 @@ Note that the "object" file isn't fit for feeding straight to zlib; it
has the git packed object header, which is variable-length. We want to has the git packed object header, which is variable-length. We want to
strip that off so we can start playing with the zlib data directly. You strip that off so we can start playing with the zlib data directly. You
can either work your way through it manually (the format is described in can either work your way through it manually (the format is described in
link:../technical/pack-format.html[Documentation/technical/pack-format.txt]), linkgit:gitformat-pack[5]),
or you can walk through it in a debugger. I did the latter, creating a or you can walk through it in a debugger. I did the latter, creating a
valid pack like: valid pack like:

View File

@ -205,7 +205,7 @@ SHA-1 content.
Object storage Object storage
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Loose objects use zlib compression and packed objects use the packed Loose objects use zlib compression and packed objects use the packed
format described in Documentation/technical/pack-format.txt, just like format described in linkgit:gitformat-pack[5], just like
today. The content that is compressed and stored uses SHA-256 content today. The content that is compressed and stored uses SHA-256 content
instead of SHA-1 content. instead of SHA-1 content.

View File

@ -3133,7 +3133,7 @@ those "loose" objects.
You can save space and make Git faster by moving these loose objects in You can save space and make Git faster by moving these loose objects in
to a "pack file", which stores a group of objects in an efficient to a "pack file", which stores a group of objects in an efficient
compressed format; the details of how pack files are formatted can be compressed format; the details of how pack files are formatted can be
found in link:technical/pack-format.html[pack format]. found in link:gitformat-pack[5].
To put the loose objects into a pack, just run git repack: To put the loose objects into a pack, just run git repack:

View File

@ -475,8 +475,7 @@ extern struct index_state the_index;
/* /*
* Values in this enum (except those outside the 3 bit range) are part * Values in this enum (except those outside the 3 bit range) are part
* of pack file format. See Documentation/technical/pack-format.txt * of pack file format. See gitformat-pack(5) for more information.
* for more information.
*/ */
enum object_type { enum object_type {
OBJ_BAD = -1, OBJ_BAD = -1,

View File

@ -210,8 +210,10 @@ gitdiffcore guide
giteveryday guide giteveryday guide
gitfaq guide gitfaq guide
gitformat-bundle developerinterfaces gitformat-bundle developerinterfaces
gitformat-chunk developerinterfaces
gitformat-commit-graph developerinterfaces gitformat-commit-graph developerinterfaces
gitformat-index developerinterfaces gitformat-index developerinterfaces
gitformat-pack developerinterfaces
gitformat-signature developerinterfaces gitformat-signature developerinterfaces
gitglossary guide gitglossary guide
githooks userinterfaces githooks userinterfaces

View File

@ -22,7 +22,7 @@
* *
* - pack position refers to an object's position within a non-existent pack * - pack position refers to an object's position within a non-existent pack
* described by the MIDX. The pack structure is described in * described by the MIDX. The pack structure is described in
* Documentation/technical/pack-format.txt. * gitformat-pack(5).
* *
* It is effectively a concatanation of all packs in the MIDX (ordered by * It is effectively a concatanation of all packs in the MIDX (ordered by
* their numeric ID within the MIDX) in their original order within each * their numeric ID within the MIDX) in their original order within each