summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-08-18 14:13:11 -0700
committerJunio C Hamano <gitster@pobox.com>2022-08-18 14:13:11 -0700
commit6596a4a0631912d8524996daaf44bc12c0ace1ca (patch)
tree0496bd0960fb9f1988bd29cd19aa8f0a72928ee3
parent06277340a6dee3122d52fd5a7e936f825095ea18 (diff)
downloadgit-manpages-6596a4a0631912d8524996daaf44bc12c0ace1ca.tar.gz
Autogenerated manpages for v2.37.2-382-g795ea
-rw-r--r--man1/git-add.18
-rw-r--r--man1/git-am.113
-rw-r--r--man1/git-annotate.16
-rw-r--r--man1/git-apply.16
-rw-r--r--man1/git-archimport.16
-rw-r--r--man1/git-archive.16
-rw-r--r--man1/git-bisect.16
-rw-r--r--man1/git-blame.16
-rw-r--r--man1/git-branch.16
-rw-r--r--man1/git-bugreport.16
-rw-r--r--man1/git-bundle.127
-rw-r--r--man1/git-cat-file.16
-rw-r--r--man1/git-check-attr.16
-rw-r--r--man1/git-check-ignore.16
-rw-r--r--man1/git-check-mailmap.16
-rw-r--r--man1/git-check-ref-format.16
-rw-r--r--man1/git-checkout-index.16
-rw-r--r--man1/git-checkout.16
-rw-r--r--man1/git-cherry-pick.113
-rw-r--r--man1/git-cherry.16
-rw-r--r--man1/git-citool.16
-rw-r--r--man1/git-clean.16
-rw-r--r--man1/git-clone.16
-rw-r--r--man1/git-column.16
-rw-r--r--man1/git-commit-graph.19
-rw-r--r--man1/git-commit-tree.16
-rw-r--r--man1/git-commit.16
-rw-r--r--man1/git-config.126
-rw-r--r--man1/git-count-objects.16
-rw-r--r--man1/git-credential-cache--daemon.16
-rw-r--r--man1/git-credential-cache.16
-rw-r--r--man1/git-credential-store.16
-rw-r--r--man1/git-credential.16
-rw-r--r--man1/git-cvsexportcommit.16
-rw-r--r--man1/git-cvsimport.16
-rw-r--r--man1/git-cvsserver.16
-rw-r--r--man1/git-daemon.16
-rw-r--r--man1/git-describe.16
-rw-r--r--man1/git-diff-files.16
-rw-r--r--man1/git-diff-index.16
-rw-r--r--man1/git-diff-tree.16
-rw-r--r--man1/git-diff.16
-rw-r--r--man1/git-difftool.16
-rw-r--r--man1/git-fast-export.16
-rw-r--r--man1/git-fast-import.16
-rw-r--r--man1/git-fetch-pack.16
-rw-r--r--man1/git-fetch.16
-rw-r--r--man1/git-filter-branch.16
-rw-r--r--man1/git-fmt-merge-msg.16
-rw-r--r--man1/git-for-each-ref.16
-rw-r--r--man1/git-for-each-repo.16
-rw-r--r--man1/git-format-patch.16
-rw-r--r--man1/git-fsck-objects.16
-rw-r--r--man1/git-fsck.16
-rw-r--r--man1/git-fsmonitor--daemon.16
-rw-r--r--man1/git-gc.16
-rw-r--r--man1/git-get-tar-commit-id.16
-rw-r--r--man1/git-grep.16
-rw-r--r--man1/git-gui.16
-rw-r--r--man1/git-hash-object.16
-rw-r--r--man1/git-help.138
-rw-r--r--man1/git-hook.16
-rw-r--r--man1/git-http-backend.16
-rw-r--r--man1/git-http-fetch.16
-rw-r--r--man1/git-http-push.16
-rw-r--r--man1/git-imap-send.16
-rw-r--r--man1/git-index-pack.16
-rw-r--r--man1/git-init-db.16
-rw-r--r--man1/git-init.16
-rw-r--r--man1/git-instaweb.16
-rw-r--r--man1/git-interpret-trailers.16
-rw-r--r--man1/git-log.16
-rw-r--r--man1/git-ls-files.16
-rw-r--r--man1/git-ls-remote.16
-rw-r--r--man1/git-ls-tree.16
-rw-r--r--man1/git-mailinfo.16
-rw-r--r--man1/git-mailsplit.16
-rw-r--r--man1/git-maintenance.16
-rw-r--r--man1/git-merge-base.16
-rw-r--r--man1/git-merge-file.16
-rw-r--r--man1/git-merge-index.16
-rw-r--r--man1/git-merge-one-file.16
-rw-r--r--man1/git-merge-tree.16
-rw-r--r--man1/git-merge.113
-rw-r--r--man1/git-mergetool--lib.16
-rw-r--r--man1/git-mergetool.16
-rw-r--r--man1/git-mktag.16
-rw-r--r--man1/git-mktree.16
-rw-r--r--man1/git-multi-pack-index.113
-rw-r--r--man1/git-mv.16
-rw-r--r--man1/git-name-rev.16
-rw-r--r--man1/git-notes.16
-rw-r--r--man1/git-p4.16
-rw-r--r--man1/git-pack-objects.16
-rw-r--r--man1/git-pack-redundant.16
-rw-r--r--man1/git-pack-refs.16
-rw-r--r--man1/git-patch-id.16
-rw-r--r--man1/git-prune-packed.16
-rw-r--r--man1/git-prune.16
-rw-r--r--man1/git-pull.16
-rw-r--r--man1/git-push.16
-rw-r--r--man1/git-quiltimport.16
-rw-r--r--man1/git-range-diff.16
-rw-r--r--man1/git-read-tree.16
-rw-r--r--man1/git-rebase.113
-rw-r--r--man1/git-receive-pack.16
-rw-r--r--man1/git-reflog.16
-rw-r--r--man1/git-remote-ext.16
-rw-r--r--man1/git-remote-fd.16
-rw-r--r--man1/git-remote.16
-rw-r--r--man1/git-repack.16
-rw-r--r--man1/git-replace.16
-rw-r--r--man1/git-request-pull.16
-rw-r--r--man1/git-rerere.16
-rw-r--r--man1/git-reset.16
-rw-r--r--man1/git-restore.16
-rw-r--r--man1/git-rev-list.111
-rw-r--r--man1/git-rev-parse.16
-rw-r--r--man1/git-revert.113
-rw-r--r--man1/git-rm.16
-rw-r--r--man1/git-send-email.16
-rw-r--r--man1/git-send-pack.16
-rw-r--r--man1/git-sh-i18n--envsubst.16
-rw-r--r--man1/git-sh-i18n.16
-rw-r--r--man1/git-sh-setup.16
-rw-r--r--man1/git-shell.16
-rw-r--r--man1/git-shortlog.16
-rw-r--r--man1/git-show-branch.16
-rw-r--r--man1/git-show-index.16
-rw-r--r--man1/git-show-ref.16
-rw-r--r--man1/git-show.16
-rw-r--r--man1/git-sparse-checkout.16
-rw-r--r--man1/git-stage.16
-rw-r--r--man1/git-stash.16
-rw-r--r--man1/git-status.16
-rw-r--r--man1/git-stripspace.16
-rw-r--r--man1/git-submodule.16
-rw-r--r--man1/git-svn.16
-rw-r--r--man1/git-switch.16
-rw-r--r--man1/git-symbolic-ref.16
-rw-r--r--man1/git-tag.16
-rw-r--r--man1/git-unpack-file.16
-rw-r--r--man1/git-unpack-objects.16
-rw-r--r--man1/git-update-index.16
-rw-r--r--man1/git-update-ref.16
-rw-r--r--man1/git-update-server-info.16
-rw-r--r--man1/git-upload-archive.16
-rw-r--r--man1/git-upload-pack.123
-rw-r--r--man1/git-var.16
-rw-r--r--man1/git-verify-commit.16
-rw-r--r--man1/git-verify-pack.16
-rw-r--r--man1/git-verify-tag.16
-rw-r--r--man1/git-version.16
-rw-r--r--man1/git-web--browse.16
-rw-r--r--man1/git-whatchanged.16
-rw-r--r--man1/git-worktree.16
-rw-r--r--man1/git-write-tree.16
-rw-r--r--man1/git.1119
-rw-r--r--man1/gitk.16
-rw-r--r--man1/gitweb.16
-rw-r--r--man5/gitattributes.56
-rw-r--r--man5/gitformat-bundle.5178
-rw-r--r--man5/gitformat-chunk.5156
-rw-r--r--man5/gitformat-commit-graph.5547
-rw-r--r--man5/gitformat-index.51339
-rw-r--r--man5/gitformat-pack.51194
-rw-r--r--man5/gitformat-signature.5414
-rw-r--r--man5/githooks.56
-rw-r--r--man5/gitignore.56
-rw-r--r--man5/gitmailmap.56
-rw-r--r--man5/gitmodules.56
-rw-r--r--man5/gitprotocol-capabilities.5230
-rw-r--r--man5/gitprotocol-common.5238
-rw-r--r--man5/gitprotocol-http.5670
-rw-r--r--man5/gitprotocol-pack.5768
-rw-r--r--man5/gitprotocol-v2.51102
-rw-r--r--man5/gitrepository-layout.56
-rw-r--r--man5/gitweb.conf.56
-rw-r--r--man7/gitcli.76
-rw-r--r--man7/gitcore-tutorial.76
-rw-r--r--man7/gitcredentials.76
-rw-r--r--man7/gitcvs-migration.76
-rw-r--r--man7/gitdiffcore.76
-rw-r--r--man7/giteveryday.76
-rw-r--r--man7/gitfaq.76
-rw-r--r--man7/gitglossary.76
-rw-r--r--man7/gitnamespaces.76
-rw-r--r--man7/gitremote-helpers.76
-rw-r--r--man7/gitrevisions.76
-rw-r--r--man7/gitsubmodules.76
-rw-r--r--man7/gittutorial-2.76
-rw-r--r--man7/gittutorial.76
-rw-r--r--man7/gitworkflows.76
193 files changed, 7551 insertions, 632 deletions
diff --git a/man1/git-add.1 b/man1/git-add.1
index 72d151642..6d5919c4c 100644
--- a/man1/git-add.1
+++ b/man1/git-add.1
@@ -2,12 +2,12 @@
.\" Title: git-add
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-ADD" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-ADD" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -193,7 +193,7 @@ Apply the "clean" process freshly to all tracked files to forcibly add them agai
configuration or the
\fBtext\fR
attribute in order to correct files added with wrong CRLF/LF line endings\&. This option implies
-\fB\-u\fR\&.
+\fB\-u\fR\&. Lone CR characters are untouched, thus while a CRLF cleans to LF, a CRCRLF sequence is only partially cleaned to CRLF\&.
.RE
.PP
\-\-chmod=(+|\-)x
diff --git a/man1/git-am.1 b/man1/git-am.1
index 52c3b587a..bd6318752 100644
--- a/man1/git-am.1
+++ b/man1/git-am.1
@@ -2,12 +2,12 @@
.\" Title: git-am
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-AM" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-AM" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -188,7 +188,12 @@ can be used to override am\&.threeWay configuration variable\&. For more informa
.PP
\-\-rerere\-autoupdate, \-\-no\-rerere\-autoupdate
.RS 4
-Allow the rerere mechanism to update the index with the result of auto\-conflict resolution if possible\&.
+After the rerere mechanism reuses a recorded resolution on the current conflict to update the files in the working tree, allow it to also update the index with the result of resolution\&.
+\fB\-\-no\-rerere\-autoupdate\fR
+is a good way to double\-check what
+\fBrerere\fR
+did and catch potential mismerges, before committing the result to the index with a separate
+\fBgit add\fR\&.
.RE
.PP
\-\-ignore\-space\-change, \-\-ignore\-whitespace, \-\-whitespace=<option>, \-C<n>, \-p<n>, \-\-directory=<dir>, \-\-exclude=<path>, \-\-include=<path>, \-\-reject
diff --git a/man1/git-annotate.1 b/man1/git-annotate.1
index d8ea43e8f..536a417e6 100644
--- a/man1/git-annotate.1
+++ b/man1/git-annotate.1
@@ -2,12 +2,12 @@
.\" Title: git-annotate
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-ANNOTATE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-ANNOTATE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-apply.1 b/man1/git-apply.1
index 90fbc39df..d039aaed2 100644
--- a/man1/git-apply.1
+++ b/man1/git-apply.1
@@ -2,12 +2,12 @@
.\" Title: git-apply
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-APPLY" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-APPLY" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-archimport.1 b/man1/git-archimport.1
index 7d40c4183..39570cc37 100644
--- a/man1/git-archimport.1
+++ b/man1/git-archimport.1
@@ -2,12 +2,12 @@
.\" Title: git-archimport
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-ARCHIMPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-ARCHIMPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-archive.1 b/man1/git-archive.1
index 367489723..fa80bcca9 100644
--- a/man1/git-archive.1
+++ b/man1/git-archive.1
@@ -2,12 +2,12 @@
.\" Title: git-archive
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-ARCHIVE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-ARCHIVE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-bisect.1 b/man1/git-bisect.1
index 5fa1be4ae..ecffd3f79 100644
--- a/man1/git-bisect.1
+++ b/man1/git-bisect.1
@@ -2,12 +2,12 @@
.\" Title: git-bisect
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-BISECT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-BISECT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-blame.1 b/man1/git-blame.1
index 7204a988c..eedb2f28a 100644
--- a/man1/git-blame.1
+++ b/man1/git-blame.1
@@ -2,12 +2,12 @@
.\" Title: git-blame
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-BLAME" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-BLAME" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-branch.1 b/man1/git-branch.1
index 814f4110e..fae18d939 100644
--- a/man1/git-branch.1
+++ b/man1/git-branch.1
@@ -2,12 +2,12 @@
.\" Title: git-branch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-BRANCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-BRANCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-bugreport.1 b/man1/git-bugreport.1
index 6d96251b8..f920329b6 100644
--- a/man1/git-bugreport.1
+++ b/man1/git-bugreport.1
@@ -2,12 +2,12 @@
.\" Title: git-bugreport
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-BUGREPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-BUGREPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-bundle.1 b/man1/git-bundle.1
index a0d03a90e..39c4a3cc9 100644
--- a/man1/git-bundle.1
+++ b/man1/git-bundle.1
@@ -2,12 +2,12 @@
.\" Title: git-bundle
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-BUNDLE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-BUNDLE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -58,7 +58,7 @@ Bundles created using revision exclusions are "thin packs" created using the \fB
.sp
There is no option to create a "thick pack" when using revision exclusions, and users should not be concerned about the difference\&. By using "thin packs", bundles created using exclusions are smaller in size\&. That they\(cqre "thin" under the hood is merely noted here as a curiosity, and as a reference to other documentation\&.
.sp
-See \m[blue]\fBthe \fBbundle\-format\fR documentation\fR\m[]\&\s-2\u[1]\d\s+2 for more details and the discussion of "thin pack" in \m[blue]\fBthe pack format documentation\fR\m[]\&\s-2\u[2]\d\s+2 for further details\&.
+See \fBgitformat-bundle\fR(5) for more details and the discussion of "thin pack" in \fBgitformat-pack\fR(5) for further details\&.
.SH "OPTIONS"
.PP
create [options] <file> <git\-rev\-list\-args>
@@ -77,7 +77,9 @@ verify <file>
.RS 4
Used to check that a bundle file is valid and will apply cleanly to the current repository\&. This includes checks on the bundle format itself as well as checking that the prerequisite commits exist and are fully linked in the current repository\&. Then,
\fIgit bundle\fR
-prints a list of missing commits, if any\&. Finally, information about additional capabilities, such as "object filter", is printed\&. See "Capabilities" in link:technical/bundle\-format\&.html for more information\&. The exit code is zero for success, but will be nonzero if the bundle file is invalid\&.
+prints a list of missing commits, if any\&. Finally, information about additional capabilities, such as "object filter", is printed\&. See "Capabilities" in
+\fBgitformat-bundle\fR(5)
+for more information\&. The exit code is zero for success, but will be nonzero if the bundle file is invalid\&.
.RE
.PP
list\-heads <file>
@@ -386,18 +388,9 @@ $ git ls\-remote mybundle
.RE
.\}
.sp
+.SH "FILE FORMAT"
+.sp
+See \fBgitformat-bundle\fR(5)\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
-.SH "NOTES"
-.IP " 1." 4
-the \fBbundle-format\fR
-documentation
-.RS 4
-\%git-htmldocs/technical/bundle-format.html
-.RE
-.IP " 2." 4
-the pack format documentation
-.RS 4
-\%git-htmldocs/technical/pack-format.html
-.RE
diff --git a/man1/git-cat-file.1 b/man1/git-cat-file.1
index 74dda70b5..3dbe88ba6 100644
--- a/man1/git-cat-file.1
+++ b/man1/git-cat-file.1
@@ -2,12 +2,12 @@
.\" Title: git-cat-file
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CAT\-FILE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CAT\-FILE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-check-attr.1 b/man1/git-check-attr.1
index f8e95f92d..abc924317 100644
--- a/man1/git-check-attr.1
+++ b/man1/git-check-attr.1
@@ -2,12 +2,12 @@
.\" Title: git-check-attr
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECK\-ATTR" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECK\-ATTR" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-check-ignore.1 b/man1/git-check-ignore.1
index a8df72ce8..1b033b720 100644
--- a/man1/git-check-ignore.1
+++ b/man1/git-check-ignore.1
@@ -2,12 +2,12 @@
.\" Title: git-check-ignore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECK\-IGNORE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECK\-IGNORE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-check-mailmap.1 b/man1/git-check-mailmap.1
index 61a01ed45..98bad5bbe 100644
--- a/man1/git-check-mailmap.1
+++ b/man1/git-check-mailmap.1
@@ -2,12 +2,12 @@
.\" Title: git-check-mailmap
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECK\-MAILMAP" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECK\-MAILMAP" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-check-ref-format.1 b/man1/git-check-ref-format.1
index 74d862fc2..1b2c16b7c 100644
--- a/man1/git-check-ref-format.1
+++ b/man1/git-check-ref-format.1
@@ -2,12 +2,12 @@
.\" Title: git-check-ref-format
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECK\-REF\-FOR" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECK\-REF\-FOR" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-checkout-index.1 b/man1/git-checkout-index.1
index 4af8d7f05..a8a41c388 100644
--- a/man1/git-checkout-index.1
+++ b/man1/git-checkout-index.1
@@ -2,12 +2,12 @@
.\" Title: git-checkout-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECKOUT\-INDEX" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECKOUT\-INDEX" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-checkout.1 b/man1/git-checkout.1
index e9cf426d7..6ab1b0b22 100644
--- a/man1/git-checkout.1
+++ b/man1/git-checkout.1
@@ -2,12 +2,12 @@
.\" Title: git-checkout
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHECKOUT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHECKOUT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-cherry-pick.1 b/man1/git-cherry-pick.1
index 511ad4bd2..b8d12559f 100644
--- a/man1/git-cherry-pick.1
+++ b/man1/git-cherry-pick.1
@@ -2,12 +2,12 @@
.\" Title: git-cherry-pick
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHERRY\-PICK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHERRY\-PICK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -229,7 +229,12 @@ for details\&.
.PP
\-\-rerere\-autoupdate, \-\-no\-rerere\-autoupdate
.RS 4
-Allow the rerere mechanism to update the index with the result of auto\-conflict resolution if possible\&.
+After the rerere mechanism reuses a recorded resolution on the current conflict to update the files in the working tree, allow it to also update the index with the result of resolution\&.
+\fB\-\-no\-rerere\-autoupdate\fR
+is a good way to double\-check what
+\fBrerere\fR
+did and catch potential mismerges, before committing the result to the index with a separate
+\fBgit add\fR\&.
.RE
.SH "SEQUENCER SUBCOMMANDS"
.PP
diff --git a/man1/git-cherry.1 b/man1/git-cherry.1
index b2bd6f63d..969b2b694 100644
--- a/man1/git-cherry.1
+++ b/man1/git-cherry.1
@@ -2,12 +2,12 @@
.\" Title: git-cherry
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CHERRY" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CHERRY" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-citool.1 b/man1/git-citool.1
index 3e89a1081..848e80cb2 100644
--- a/man1/git-citool.1
+++ b/man1/git-citool.1
@@ -2,12 +2,12 @@
.\" Title: git-citool
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CITOOL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CITOOL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-clean.1 b/man1/git-clean.1
index 265b0e4c0..8116f4aa4 100644
--- a/man1/git-clean.1
+++ b/man1/git-clean.1
@@ -2,12 +2,12 @@
.\" Title: git-clean
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CLEAN" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CLEAN" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-clone.1 b/man1/git-clone.1
index bec8e1102..fcd68a210 100644
--- a/man1/git-clone.1
+++ b/man1/git-clone.1
@@ -2,12 +2,12 @@
.\" Title: git-clone
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CLONE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CLONE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-column.1 b/man1/git-column.1
index ffe35efd3..01e84399f 100644
--- a/man1/git-column.1
+++ b/man1/git-column.1
@@ -2,12 +2,12 @@
.\" Title: git-column
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-COLUMN" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-COLUMN" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-commit-graph.1 b/man1/git-commit-graph.1
index 658ad6ea1..9f9575f87 100644
--- a/man1/git-commit-graph.1
+++ b/man1/git-commit-graph.1
@@ -2,12 +2,12 @@
.\" Title: git-commit-graph
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-COMMIT\-GRAPH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-COMMIT\-GRAPH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -283,6 +283,9 @@ $ git rev\-parse HEAD | git commit\-graph write \-\-stdin\-commits \-\-append
.\}
.sp
.RE
+.SH "FILE FORMAT"
+.sp
+see \fBgitformat-commit-graph\fR(5)\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
diff --git a/man1/git-commit-tree.1 b/man1/git-commit-tree.1
index 307e4e9b1..5c47b6286 100644
--- a/man1/git-commit-tree.1
+++ b/man1/git-commit-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-commit-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-COMMIT\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-COMMIT\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-commit.1 b/man1/git-commit.1
index b0cdf0d19..61ba3a6ec 100644
--- a/man1/git-commit.1
+++ b/man1/git-commit.1
@@ -2,12 +2,12 @@
.\" Title: git-commit
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-COMMIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-COMMIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-config.1 b/man1/git-config.1
index 94e250582..2522fa307 100644
--- a/man1/git-config.1
+++ b/man1/git-config.1
@@ -2,12 +2,12 @@
.\" Title: git-config
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CONFIG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CONFIG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -6347,7 +6347,8 @@ assume
.PP
lsrefs\&.unborn
.RS 4
-May be "advertise" (the default), "allow", or "ignore"\&. If "advertise", the server will respond to the client sending "unborn" (as described in protocol\-v2\&.txt) and will advertise support for this feature during the protocol v2 capability advertisement\&. "allow" is the same as "advertise" except that the server will not advertise support for this feature; this is useful for load\-balanced servers that cannot be updated atomically (for example), since the administrator could configure "allow", then after a delay, configure "advertise"\&.
+May be "advertise" (the default), "allow", or "ignore"\&. If "advertise", the server will respond to the client sending "unborn" (as described in
+\fBgitprotocol-v2\fR(5)) and will advertise support for this feature during the protocol v2 capability advertisement\&. "allow" is the same as "advertise" except that the server will not advertise support for this feature; this is useful for load\-balanced servers that cannot be updated atomically (for example), since the administrator could configure "allow", then after a delay, configure "advertise"\&.
.RE
.PP
mailinfo\&.scissors
@@ -7197,7 +7198,7 @@ When writing a multi\-pack reachability bitmap, no new namehashes are computed;
pack\&.writeReverseIndex
.RS 4
When true, git will write a corresponding \&.rev file (see:
-\m[blue]\fBDocumentation/technical/pack\-format\&.txt\fR\m[]\&\s-2\u[1]\d\s+2) for each new packfile that it writes in all places except for
+\fBgitformat-pack\fR(5)) for each new packfile that it writes in all places except for
\fBgit-fast-import\fR(1)
and in the bulk checkin mechanism\&. Defaults to false\&.
.RE
@@ -7390,8 +7391,8 @@ If set, clients will attempt to communicate with a server using the specified pr
.IP \(bu 2.3
.\}
\fB2\fR
-\-
-\m[blue]\fBwire protocol version 2\fR\m[]\&\s-2\u[2]\d\s+2\&.
+\- Wire protocol version 2, see
+\fBgitprotocol-v2\fR(5)\&.
.RE
.RE
.PP
@@ -9485,14 +9486,3 @@ and running \fBgit config section\&.Subsection\&.key value2\fR will result in
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
-.SH "NOTES"
-.IP " 1." 4
-Documentation/technical/pack-format.txt
-.RS 4
-\%git-htmldocs/../technical/pack-format.html
-.RE
-.IP " 2." 4
-wire protocol version 2
-.RS 4
-\%git-htmldocs/technical/protocol-v2.html
-.RE
diff --git a/man1/git-count-objects.1 b/man1/git-count-objects.1
index 34614a6d6..74d68c2d8 100644
--- a/man1/git-count-objects.1
+++ b/man1/git-count-objects.1
@@ -2,12 +2,12 @@
.\" Title: git-count-objects
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-COUNT\-OBJECTS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-COUNT\-OBJECTS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-credential-cache--daemon.1 b/man1/git-credential-cache--daemon.1
index 8ae89bcef..e132c53db 100644
--- a/man1/git-credential-cache--daemon.1
+++ b/man1/git-credential-cache--daemon.1
@@ -2,12 +2,12 @@
.\" Title: git-credential-cache--daemon
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CREDENTIAL\-CAC" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CREDENTIAL\-CAC" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-credential-cache.1 b/man1/git-credential-cache.1
index 21547559f..1b3f85cc5 100644
--- a/man1/git-credential-cache.1
+++ b/man1/git-credential-cache.1
@@ -2,12 +2,12 @@
.\" Title: git-credential-cache
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CREDENTIAL\-CAC" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CREDENTIAL\-CAC" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-credential-store.1 b/man1/git-credential-store.1
index dae5b1543..0a0ae36bb 100644
--- a/man1/git-credential-store.1
+++ b/man1/git-credential-store.1
@@ -2,12 +2,12 @@
.\" Title: git-credential-store
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CREDENTIAL\-STO" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CREDENTIAL\-STO" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-credential.1 b/man1/git-credential.1
index 6d8317a42..88bb5c24e 100644
--- a/man1/git-credential.1
+++ b/man1/git-credential.1
@@ -2,12 +2,12 @@
.\" Title: git-credential
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CREDENTIAL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CREDENTIAL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-cvsexportcommit.1 b/man1/git-cvsexportcommit.1
index a4a377ead..88a949fb9 100644
--- a/man1/git-cvsexportcommit.1
+++ b/man1/git-cvsexportcommit.1
@@ -2,12 +2,12 @@
.\" Title: git-cvsexportcommit
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CVSEXPORTCOMMIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CVSEXPORTCOMMIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-cvsimport.1 b/man1/git-cvsimport.1
index a6a6dafd1..2536b26ad 100644
--- a/man1/git-cvsimport.1
+++ b/man1/git-cvsimport.1
@@ -2,12 +2,12 @@
.\" Title: git-cvsimport
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CVSIMPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CVSIMPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-cvsserver.1 b/man1/git-cvsserver.1
index 4ff7a9c68..5977e6e7f 100644
--- a/man1/git-cvsserver.1
+++ b/man1/git-cvsserver.1
@@ -2,12 +2,12 @@
.\" Title: git-cvsserver
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-CVSSERVER" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-CVSSERVER" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-daemon.1 b/man1/git-daemon.1
index b3fb661a4..7ea7f8208 100644
--- a/man1/git-daemon.1
+++ b/man1/git-daemon.1
@@ -2,12 +2,12 @@
.\" Title: git-daemon
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DAEMON" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DAEMON" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-describe.1 b/man1/git-describe.1
index 9f1647697..b8a8426af 100644
--- a/man1/git-describe.1
+++ b/man1/git-describe.1
@@ -2,12 +2,12 @@
.\" Title: git-describe
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DESCRIBE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DESCRIBE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-diff-files.1 b/man1/git-diff-files.1
index fe173c256..82e0138d0 100644
--- a/man1/git-diff-files.1
+++ b/man1/git-diff-files.1
@@ -2,12 +2,12 @@
.\" Title: git-diff-files
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DIFF\-FILES" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DIFF\-FILES" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-diff-index.1 b/man1/git-diff-index.1
index befca26c2..594217838 100644
--- a/man1/git-diff-index.1
+++ b/man1/git-diff-index.1
@@ -2,12 +2,12 @@
.\" Title: git-diff-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DIFF\-INDEX" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DIFF\-INDEX" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-diff-tree.1 b/man1/git-diff-tree.1
index 0ca7f118b..0e958b0d3 100644
--- a/man1/git-diff-tree.1
+++ b/man1/git-diff-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-diff-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DIFF\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DIFF\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-diff.1 b/man1/git-diff.1
index 29891ea58..6948041ac 100644
--- a/man1/git-diff.1
+++ b/man1/git-diff.1
@@ -2,12 +2,12 @@
.\" Title: git-diff
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DIFF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DIFF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-difftool.1 b/man1/git-difftool.1
index 6b535d847..425afb0c0 100644
--- a/man1/git-difftool.1
+++ b/man1/git-difftool.1
@@ -2,12 +2,12 @@
.\" Title: git-difftool
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-DIFFTOOL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-DIFFTOOL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fast-export.1 b/man1/git-fast-export.1
index 8801af69d..d25147208 100644
--- a/man1/git-fast-export.1
+++ b/man1/git-fast-export.1
@@ -2,12 +2,12 @@
.\" Title: git-fast-export
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FAST\-EXPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FAST\-EXPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fast-import.1 b/man1/git-fast-import.1
index f3dbddc11..101e668f4 100644
--- a/man1/git-fast-import.1
+++ b/man1/git-fast-import.1
@@ -2,12 +2,12 @@
.\" Title: git-fast-import
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FAST\-IMPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FAST\-IMPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fetch-pack.1 b/man1/git-fetch-pack.1
index 218687b2d..c84d0a849 100644
--- a/man1/git-fetch-pack.1
+++ b/man1/git-fetch-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-fetch-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FETCH\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FETCH\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fetch.1 b/man1/git-fetch.1
index 9e0d61093..26351c79d 100644
--- a/man1/git-fetch.1
+++ b/man1/git-fetch.1
@@ -2,12 +2,12 @@
.\" Title: git-fetch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FETCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FETCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-filter-branch.1 b/man1/git-filter-branch.1
index 91c6f4510..0b9109fb2 100644
--- a/man1/git-filter-branch.1
+++ b/man1/git-filter-branch.1
@@ -2,12 +2,12 @@
.\" Title: git-filter-branch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FILTER\-BRANCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FILTER\-BRANCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fmt-merge-msg.1 b/man1/git-fmt-merge-msg.1
index 5471886ca..ab0900b9b 100644
--- a/man1/git-fmt-merge-msg.1
+++ b/man1/git-fmt-merge-msg.1
@@ -2,12 +2,12 @@
.\" Title: git-fmt-merge-msg
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FMT\-MERGE\-MSG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FMT\-MERGE\-MSG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-for-each-ref.1 b/man1/git-for-each-ref.1
index 7e9ad5773..2a7235063 100644
--- a/man1/git-for-each-ref.1
+++ b/man1/git-for-each-ref.1
@@ -2,12 +2,12 @@
.\" Title: git-for-each-ref
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FOR\-EACH\-REF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FOR\-EACH\-REF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-for-each-repo.1 b/man1/git-for-each-repo.1
index a3b752017..d0a93dcd2 100644
--- a/man1/git-for-each-repo.1
+++ b/man1/git-for-each-repo.1
@@ -2,12 +2,12 @@
.\" Title: git-for-each-repo
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FOR\-EACH\-REPO" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FOR\-EACH\-REPO" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-format-patch.1 b/man1/git-format-patch.1
index 4f5c5e7e9..46588409c 100644
--- a/man1/git-format-patch.1
+++ b/man1/git-format-patch.1
@@ -2,12 +2,12 @@
.\" Title: git-format-patch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FORMAT\-PATCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FORMAT\-PATCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fsck-objects.1 b/man1/git-fsck-objects.1
index 44dc43572..66b88edde 100644
--- a/man1/git-fsck-objects.1
+++ b/man1/git-fsck-objects.1
@@ -2,12 +2,12 @@
.\" Title: git-fsck-objects
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FSCK\-OBJECTS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FSCK\-OBJECTS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fsck.1 b/man1/git-fsck.1
index 84cc8eb57..f632ccf4a 100644
--- a/man1/git-fsck.1
+++ b/man1/git-fsck.1
@@ -2,12 +2,12 @@
.\" Title: git-fsck
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FSCK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FSCK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-fsmonitor--daemon.1 b/man1/git-fsmonitor--daemon.1
index 93b43c0da..c1d2956d1 100644
--- a/man1/git-fsmonitor--daemon.1
+++ b/man1/git-fsmonitor--daemon.1
@@ -2,12 +2,12 @@
.\" Title: git-fsmonitor--daemon
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-FSMONITOR\-\-DA" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-FSMONITOR\-\-DA" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-gc.1 b/man1/git-gc.1
index 3d35b92ea..fc2aaf50d 100644
--- a/man1/git-gc.1
+++ b/man1/git-gc.1
@@ -2,12 +2,12 @@
.\" Title: git-gc
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-GC" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-GC" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-get-tar-commit-id.1 b/man1/git-get-tar-commit-id.1
index 4a1d8e671..29d21dac3 100644
--- a/man1/git-get-tar-commit-id.1
+++ b/man1/git-get-tar-commit-id.1
@@ -2,12 +2,12 @@
.\" Title: git-get-tar-commit-id
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-GET\-TAR\-COMMI" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-GET\-TAR\-COMMI" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-grep.1 b/man1/git-grep.1
index fc80d7d2e..4de589aee 100644
--- a/man1/git-grep.1
+++ b/man1/git-grep.1
@@ -2,12 +2,12 @@
.\" Title: git-grep
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-GREP" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-GREP" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-gui.1 b/man1/git-gui.1
index 1ab6384a1..4418e025a 100644
--- a/man1/git-gui.1
+++ b/man1/git-gui.1
@@ -2,12 +2,12 @@
.\" Title: git-gui
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-GUI" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-GUI" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-hash-object.1 b/man1/git-hash-object.1
index 58d2366d5..d96429fed 100644
--- a/man1/git-hash-object.1
+++ b/man1/git-hash-object.1
@@ -2,12 +2,12 @@
.\" Title: git-hash-object
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HASH\-OBJECT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HASH\-OBJECT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-help.1 b/man1/git-help.1
index b127c425b..7f3468cc4 100644
--- a/man1/git-help.1
+++ b/man1/git-help.1
@@ -2,12 +2,12 @@
.\" Title: git-help
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HELP" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HELP" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -33,20 +33,22 @@ git-help \- Display help information about Git
.sp
.nf
\fIgit help\fR [\-a|\-\-all] [\-\-[no\-]verbose] [\-\-[no\-]external\-commands] [\-\-[no\-]aliases]
-\fIgit help\fR [[\-i|\-\-info] [\-m|\-\-man] [\-w|\-\-web]] [<command>|<guide>]
+\fIgit help\fR [[\-i|\-\-info] [\-m|\-\-man] [\-w|\-\-web]] [<command>|<doc>]
\fIgit help\fR [\-g|\-\-guides]
\fIgit help\fR [\-c|\-\-config]
+\fIgit help\fR [\-\-user\-interfaces]
+\fIgit help\fR [\-\-developer\-interfaces]
.fi
.sp
.SH "DESCRIPTION"
.sp
-With no options and no \fI<command>\fR or \fI<guide>\fR given, the synopsis of the \fIgit\fR command and a list of the most commonly used Git commands are printed on the standard output\&.
+With no options and no \fI<command>\fR or \fI<doc>\fR given, the synopsis of the \fIgit\fR command and a list of the most commonly used Git commands are printed on the standard output\&.
.sp
If the option \fB\-\-all\fR or \fB\-a\fR is given, all available commands are printed on the standard output\&.
.sp
If the option \fB\-\-guides\fR or \fB\-g\fR is given, a list of the Git concept guides is also printed on the standard output\&.
.sp
-If a command, or a guide, is given, a manual page for that command or guide is brought up\&. The \fIman\fR program is used by default for this purpose, but this can be overridden by other options or configuration variables\&.
+If a command or other documentation is given, the relevant manual page will be brought up\&. The \fIman\fR program is used by default for this purpose, but this can be overridden by other options or configuration variables\&.
.sp
If an alias is given, git shows the definition of the alias on standard output\&. To get the manual page for the aliased command, use \fBgit <command> \-\-help\fR\&.
.sp
@@ -93,6 +95,30 @@ List all available configuration variables\&. This is a short summary of the lis
Prints a list of the Git concept guides on the standard output\&.
.RE
.PP
+\-\-user\-interfaces
+.RS 4
+Prints a list of the repository, command and file interfaces documentation on the standard output\&.
+.sp
+In\-repository file interfaces such as
+\fB\&.git/info/exclude\fR
+are documented here (see
+\fBgitrepository-layout\fR(5)), as well as in\-tree configuration such as
+\fB\&.mailmap\fR
+(see
+\fBgitmailmap\fR(5))\&.
+.sp
+This section of the documentation also covers general or widespread user\-interface conventions (e\&.g\&.
+\fBgitcli\fR(7)), and pseudo\-configuration such as the file\-based
+\fB\&.git/hooks/*\fR
+interface described in
+\fBgithooks\fR(5)\&.
+.RE
+.PP
+\-\-developer\-interfaces
+.RS 4
+Print list of file formats, protocols and other developer interfaces documentation on the standard output\&.
+.RE
+.PP
\-i, \-\-info
.RS 4
Display manual page for the command in the
diff --git a/man1/git-hook.1 b/man1/git-hook.1
index 59420916d..6b8fa0f35 100644
--- a/man1/git-hook.1
+++ b/man1/git-hook.1
@@ -2,12 +2,12 @@
.\" Title: git-hook
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HOOK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HOOK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-http-backend.1 b/man1/git-http-backend.1
index d5ecd559c..f64da6838 100644
--- a/man1/git-http-backend.1
+++ b/man1/git-http-backend.1
@@ -2,12 +2,12 @@
.\" Title: git-http-backend
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HTTP\-BACKEND" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HTTP\-BACKEND" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-http-fetch.1 b/man1/git-http-fetch.1
index e60017291..a08130e0c 100644
--- a/man1/git-http-fetch.1
+++ b/man1/git-http-fetch.1
@@ -2,12 +2,12 @@
.\" Title: git-http-fetch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HTTP\-FETCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HTTP\-FETCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-http-push.1 b/man1/git-http-push.1
index d3e06a084..7f7942fa9 100644
--- a/man1/git-http-push.1
+++ b/man1/git-http-push.1
@@ -2,12 +2,12 @@
.\" Title: git-http-push
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-HTTP\-PUSH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-HTTP\-PUSH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-imap-send.1 b/man1/git-imap-send.1
index d155fe152..92f884ed4 100644
--- a/man1/git-imap-send.1
+++ b/man1/git-imap-send.1
@@ -2,12 +2,12 @@
.\" Title: git-imap-send
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-IMAP\-SEND" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-IMAP\-SEND" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-index-pack.1 b/man1/git-index-pack.1
index e500cf98a..43bf66cd5 100644
--- a/man1/git-index-pack.1
+++ b/man1/git-index-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-index-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-INDEX\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-INDEX\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-init-db.1 b/man1/git-init-db.1
index b2f1c0174..077ea2162 100644
--- a/man1/git-init-db.1
+++ b/man1/git-init-db.1
@@ -2,12 +2,12 @@
.\" Title: git-init-db
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-INIT\-DB" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-INIT\-DB" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-init.1 b/man1/git-init.1
index edf1af27d..f4ea48191 100644
--- a/man1/git-init.1
+++ b/man1/git-init.1
@@ -2,12 +2,12 @@
.\" Title: git-init
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-INIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-INIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-instaweb.1 b/man1/git-instaweb.1
index e710be5aa..729f276e9 100644
--- a/man1/git-instaweb.1
+++ b/man1/git-instaweb.1
@@ -2,12 +2,12 @@
.\" Title: git-instaweb
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-INSTAWEB" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-INSTAWEB" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-interpret-trailers.1 b/man1/git-interpret-trailers.1
index c05512944..f3bf72073 100644
--- a/man1/git-interpret-trailers.1
+++ b/man1/git-interpret-trailers.1
@@ -2,12 +2,12 @@
.\" Title: git-interpret-trailers
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-INTERPRET\-TRAI" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-INTERPRET\-TRAI" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-log.1 b/man1/git-log.1
index 3964d3254..49162a709 100644
--- a/man1/git-log.1
+++ b/man1/git-log.1
@@ -2,12 +2,12 @@
.\" Title: git-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-LOG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-LOG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-ls-files.1 b/man1/git-ls-files.1
index d79eaef7c..8c205b3e0 100644
--- a/man1/git-ls-files.1
+++ b/man1/git-ls-files.1
@@ -2,12 +2,12 @@
.\" Title: git-ls-files
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-LS\-FILES" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-LS\-FILES" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-ls-remote.1 b/man1/git-ls-remote.1
index bd4fde61b..128ec5921 100644
--- a/man1/git-ls-remote.1
+++ b/man1/git-ls-remote.1
@@ -2,12 +2,12 @@
.\" Title: git-ls-remote
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-LS\-REMOTE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-LS\-REMOTE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-ls-tree.1 b/man1/git-ls-tree.1
index dd3256378..33bce77a5 100644
--- a/man1/git-ls-tree.1
+++ b/man1/git-ls-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-ls-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-LS\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-LS\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-mailinfo.1 b/man1/git-mailinfo.1
index f673965c2..9f5656cb4 100644
--- a/man1/git-mailinfo.1
+++ b/man1/git-mailinfo.1
@@ -2,12 +2,12 @@
.\" Title: git-mailinfo
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MAILINFO" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MAILINFO" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-mailsplit.1 b/man1/git-mailsplit.1
index bcd3184de..b1ab6c797 100644
--- a/man1/git-mailsplit.1
+++ b/man1/git-mailsplit.1
@@ -2,12 +2,12 @@
.\" Title: git-mailsplit
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MAILSPLIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MAILSPLIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-maintenance.1 b/man1/git-maintenance.1
index 17aa0ecc5..79838818d 100644
--- a/man1/git-maintenance.1
+++ b/man1/git-maintenance.1
@@ -2,12 +2,12 @@
.\" Title: git-maintenance
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MAINTENANCE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MAINTENANCE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge-base.1 b/man1/git-merge-base.1
index ac9c45b0a..1ce360e93 100644
--- a/man1/git-merge-base.1
+++ b/man1/git-merge-base.1
@@ -2,12 +2,12 @@
.\" Title: git-merge-base
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE\-BASE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE\-BASE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge-file.1 b/man1/git-merge-file.1
index da4d7b2f3..87a256b67 100644
--- a/man1/git-merge-file.1
+++ b/man1/git-merge-file.1
@@ -2,12 +2,12 @@
.\" Title: git-merge-file
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE\-FILE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE\-FILE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge-index.1 b/man1/git-merge-index.1
index 28cbc26f7..f98b21ce4 100644
--- a/man1/git-merge-index.1
+++ b/man1/git-merge-index.1
@@ -2,12 +2,12 @@
.\" Title: git-merge-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE\-INDEX" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE\-INDEX" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge-one-file.1 b/man1/git-merge-one-file.1
index 76d62b95a..76bc530c9 100644
--- a/man1/git-merge-one-file.1
+++ b/man1/git-merge-one-file.1
@@ -2,12 +2,12 @@
.\" Title: git-merge-one-file
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE\-ONE\-FIL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE\-ONE\-FIL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge-tree.1 b/man1/git-merge-tree.1
index 8b9ef034f..0a2c4e386 100644
--- a/man1/git-merge-tree.1
+++ b/man1/git-merge-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-merge-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-merge.1 b/man1/git-merge.1
index 7ac8c8f81..5001c9f3e 100644
--- a/man1/git-merge.1
+++ b/man1/git-merge.1
@@ -2,12 +2,12 @@
.\" Title: git-merge
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -287,7 +287,12 @@ is specified, a shortlog of the commits being merged will be appended to the spe
.PP
\-\-rerere\-autoupdate, \-\-no\-rerere\-autoupdate
.RS 4
-Allow the rerere mechanism to update the index with the result of auto\-conflict resolution if possible\&.
+After the rerere mechanism reuses a recorded resolution on the current conflict to update the files in the working tree, allow it to also update the index with the result of resolution\&.
+\fB\-\-no\-rerere\-autoupdate\fR
+is a good way to double\-check what
+\fBrerere\fR
+did and catch potential mismerges, before committing the result to the index with a separate
+\fBgit add\fR\&.
.RE
.PP
\-\-overwrite\-ignore, \-\-no\-overwrite\-ignore
diff --git a/man1/git-mergetool--lib.1 b/man1/git-mergetool--lib.1
index c620a08f3..5c172404c 100644
--- a/man1/git-mergetool--lib.1
+++ b/man1/git-mergetool--lib.1
@@ -2,12 +2,12 @@
.\" Title: git-mergetool--lib
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGETOOL\-\-LI" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGETOOL\-\-LI" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-mergetool.1 b/man1/git-mergetool.1
index b1f65075b..35bbaae5e 100644
--- a/man1/git-mergetool.1
+++ b/man1/git-mergetool.1
@@ -2,12 +2,12 @@
.\" Title: git-mergetool
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MERGETOOL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MERGETOOL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-mktag.1 b/man1/git-mktag.1
index 6fd3696ce..d5bf77855 100644
--- a/man1/git-mktag.1
+++ b/man1/git-mktag.1
@@ -2,12 +2,12 @@
.\" Title: git-mktag
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MKTAG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MKTAG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-mktree.1 b/man1/git-mktree.1
index f44ae52f0..dbc890a86 100644
--- a/man1/git-mktree.1
+++ b/man1/git-mktree.1
@@ -2,12 +2,12 @@
.\" Title: git-mktree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MKTREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MKTREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-multi-pack-index.1 b/man1/git-multi-pack-index.1
index ac5195f0f..055b824f0 100644
--- a/man1/git-multi-pack-index.1
+++ b/man1/git-multi-pack-index.1
@@ -2,12 +2,12 @@
.\" Title: git-multi-pack-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MULTI\-PACK\-IN" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MULTI\-PACK\-IN" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -228,7 +228,7 @@ $ git multi\-pack\-index verify
.RE
.SH "SEE ALSO"
.sp
-See \m[blue]\fBThe Multi\-Pack\-Index Design Document\fR\m[]\&\s-2\u[1]\d\s+2 and \m[blue]\fBThe Multi\-Pack\-Index Format\fR\m[]\&\s-2\u[2]\d\s+2 for more information on the multi\-pack\-index feature\&.
+See \m[blue]\fBThe Multi\-Pack\-Index Design Document\fR\m[]\&\s-2\u[1]\d\s+2 and \fBgitformat-pack\fR(5) for more information on the multi\-pack\-index feature and its file format\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
@@ -238,8 +238,3 @@ The Multi-Pack-Index Design Document
.RS 4
\%git-htmldocs/technical/multi-pack-index.html
.RE
-.IP " 2." 4
-The Multi-Pack-Index Format
-.RS 4
-\%git-htmldocs/technical/pack-format.html
-.RE
diff --git a/man1/git-mv.1 b/man1/git-mv.1
index ce2908991..27a51fb77 100644
--- a/man1/git-mv.1
+++ b/man1/git-mv.1
@@ -2,12 +2,12 @@
.\" Title: git-mv
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-MV" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-MV" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-name-rev.1 b/man1/git-name-rev.1
index 4d1d6e6eb..d6e889289 100644
--- a/man1/git-name-rev.1
+++ b/man1/git-name-rev.1
@@ -2,12 +2,12 @@
.\" Title: git-name-rev
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-NAME\-REV" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-NAME\-REV" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-notes.1 b/man1/git-notes.1
index 89f9d5eb0..4cdcbee51 100644
--- a/man1/git-notes.1
+++ b/man1/git-notes.1
@@ -2,12 +2,12 @@
.\" Title: git-notes
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-NOTES" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-NOTES" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-p4.1 b/man1/git-p4.1
index aecc4a23d..1a8c52efd 100644
--- a/man1/git-p4.1
+++ b/man1/git-p4.1
@@ -2,12 +2,12 @@
.\" Title: git-p4
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-P4" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-P4" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-pack-objects.1 b/man1/git-pack-objects.1
index a9fa8fe89..48c6ae932 100644
--- a/man1/git-pack-objects.1
+++ b/man1/git-pack-objects.1
@@ -2,12 +2,12 @@
.\" Title: git-pack-objects
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PACK\-OBJECTS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PACK\-OBJECTS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-pack-redundant.1 b/man1/git-pack-redundant.1
index 1919f9490..4783946c6 100644
--- a/man1/git-pack-redundant.1
+++ b/man1/git-pack-redundant.1
@@ -2,12 +2,12 @@
.\" Title: git-pack-redundant
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PACK\-REDUNDANT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PACK\-REDUNDANT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-pack-refs.1 b/man1/git-pack-refs.1
index ed2f5a32a..38dbbffeb 100644
--- a/man1/git-pack-refs.1
+++ b/man1/git-pack-refs.1
@@ -2,12 +2,12 @@
.\" Title: git-pack-refs
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PACK\-REFS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PACK\-REFS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-patch-id.1 b/man1/git-patch-id.1
index 572219ed8..79d389bd5 100644
--- a/man1/git-patch-id.1
+++ b/man1/git-patch-id.1
@@ -2,12 +2,12 @@
.\" Title: git-patch-id
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PATCH\-ID" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PATCH\-ID" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-prune-packed.1 b/man1/git-prune-packed.1
index bdaf9711c..272416e80 100644
--- a/man1/git-prune-packed.1
+++ b/man1/git-prune-packed.1
@@ -2,12 +2,12 @@
.\" Title: git-prune-packed
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PRUNE\-PACKED" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PRUNE\-PACKED" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-prune.1 b/man1/git-prune.1
index 7d20a1f29..9f5275669 100644
--- a/man1/git-prune.1
+++ b/man1/git-prune.1
@@ -2,12 +2,12 @@
.\" Title: git-prune
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PRUNE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PRUNE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-pull.1 b/man1/git-pull.1
index 87a5d392c..54ccb79e3 100644
--- a/man1/git-pull.1
+++ b/man1/git-pull.1
@@ -2,12 +2,12 @@
.\" Title: git-pull
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PULL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PULL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-push.1 b/man1/git-push.1
index 44c9bf908..e997a5627 100644
--- a/man1/git-push.1
+++ b/man1/git-push.1
@@ -2,12 +2,12 @@
.\" Title: git-push
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-PUSH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-PUSH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-quiltimport.1 b/man1/git-quiltimport.1
index 1bae308d0..4bb6f7d0f 100644
--- a/man1/git-quiltimport.1
+++ b/man1/git-quiltimport.1
@@ -2,12 +2,12 @@
.\" Title: git-quiltimport
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-QUILTIMPORT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-QUILTIMPORT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-range-diff.1 b/man1/git-range-diff.1
index 0530d3154..c1c20b260 100644
--- a/man1/git-range-diff.1
+++ b/man1/git-range-diff.1
@@ -2,12 +2,12 @@
.\" Title: git-range-diff
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RANGE\-DIFF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RANGE\-DIFF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-read-tree.1 b/man1/git-read-tree.1
index b30343010..303dae6ff 100644
--- a/man1/git-read-tree.1
+++ b/man1/git-read-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-read-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-READ\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-READ\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-rebase.1 b/man1/git-rebase.1
index fe6876ea6..d9a028f88 100644
--- a/man1/git-rebase.1
+++ b/man1/git-rebase.1
@@ -2,12 +2,12 @@
.\" Title: git-rebase
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REBASE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REBASE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -516,7 +516,12 @@ See also INCOMPATIBLE OPTIONS below\&.
.PP
\-\-rerere\-autoupdate, \-\-no\-rerere\-autoupdate
.RS 4
-Allow the rerere mechanism to update the index with the result of auto\-conflict resolution if possible\&.
+After the rerere mechanism reuses a recorded resolution on the current conflict to update the files in the working tree, allow it to also update the index with the result of resolution\&.
+\fB\-\-no\-rerere\-autoupdate\fR
+is a good way to double\-check what
+\fBrerere\fR
+did and catch potential mismerges, before committing the result to the index with a separate
+\fBgit add\fR\&.
.RE
.PP
\-S[<keyid>], \-\-gpg\-sign[=<keyid>], \-\-no\-gpg\-sign
diff --git a/man1/git-receive-pack.1 b/man1/git-receive-pack.1
index d76f1543b..ac7bfc5e2 100644
--- a/man1/git-receive-pack.1
+++ b/man1/git-receive-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-receive-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RECEIVE\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RECEIVE\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-reflog.1 b/man1/git-reflog.1
index aa9634966..308cb2c6b 100644
--- a/man1/git-reflog.1
+++ b/man1/git-reflog.1
@@ -2,12 +2,12 @@
.\" Title: git-reflog
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REFLOG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REFLOG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-remote-ext.1 b/man1/git-remote-ext.1
index 85e09f68a..59425c244 100644
--- a/man1/git-remote-ext.1
+++ b/man1/git-remote-ext.1
@@ -2,12 +2,12 @@
.\" Title: git-remote-ext
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REMOTE\-EXT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REMOTE\-EXT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-remote-fd.1 b/man1/git-remote-fd.1
index bf291b74f..96e8ba119 100644
--- a/man1/git-remote-fd.1
+++ b/man1/git-remote-fd.1
@@ -2,12 +2,12 @@
.\" Title: git-remote-fd
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REMOTE\-FD" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REMOTE\-FD" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-remote.1 b/man1/git-remote.1
index 6bd839f03..556100a02 100644
--- a/man1/git-remote.1
+++ b/man1/git-remote.1
@@ -2,12 +2,12 @@
.\" Title: git-remote
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REMOTE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REMOTE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-repack.1 b/man1/git-repack.1
index c5587cea0..9cf841f72 100644
--- a/man1/git-repack.1
+++ b/man1/git-repack.1
@@ -2,12 +2,12 @@
.\" Title: git-repack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REPACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REPACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-replace.1 b/man1/git-replace.1
index 0f8b13798..028ca7ae9 100644
--- a/man1/git-replace.1
+++ b/man1/git-replace.1
@@ -2,12 +2,12 @@
.\" Title: git-replace
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REPLACE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REPLACE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-request-pull.1 b/man1/git-request-pull.1
index 2e3084473..19a6864e7 100644
--- a/man1/git-request-pull.1
+++ b/man1/git-request-pull.1
@@ -2,12 +2,12 @@
.\" Title: git-request-pull
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REQUEST\-PULL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REQUEST\-PULL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-rerere.1 b/man1/git-rerere.1
index 5bebe1784..829aeb133 100644
--- a/man1/git-rerere.1
+++ b/man1/git-rerere.1
@@ -2,12 +2,12 @@
.\" Title: git-rerere
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RERERE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RERERE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-reset.1 b/man1/git-reset.1
index 7abf0044f..5fd5a4fd9 100644
--- a/man1/git-reset.1
+++ b/man1/git-reset.1
@@ -2,12 +2,12 @@
.\" Title: git-reset
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RESET" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RESET" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-restore.1 b/man1/git-restore.1
index 0c54fa10b..b2360d679 100644
--- a/man1/git-restore.1
+++ b/man1/git-restore.1
@@ -2,12 +2,12 @@
.\" Title: git-restore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RESTORE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RESTORE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-rev-list.1 b/man1/git-rev-list.1
index f0d239d08..aa590b516 100644
--- a/man1/git-rev-list.1
+++ b/man1/git-rev-list.1
@@ -2,12 +2,12 @@
.\" Title: git-rev-list
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REV\-LIST" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REV\-LIST" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -394,7 +394,7 @@ Don\(cqt print anything to standard output\&. This form is primarily meant to al
as the output does not have to be formatted\&.
.RE
.PP
-\-\-disk\-usage
+\-\-disk\-usage, \-\-disk\-usage=human
.RS 4
Suppress normal output; instead, print the sum of the bytes used for on\-disk storage by the selected commits or objects\&. This is equivalent to piping the output into
\fBgit cat\-file \-\-batch\-check=\(aq%(objectsize:disk)\(aq\fR, except that it runs much faster (especially with
@@ -402,7 +402,8 @@ Suppress normal output; instead, print the sum of the bytes used for on\-disk st
\fBCAVEATS\fR
section in
\fBgit-cat-file\fR(1)
-for the limitations of what "on\-disk storage" means\&.
+for the limitations of what "on\-disk storage" means\&. With the optional value
+\fBhuman\fR, on\-disk storage size is shown in human\-readable string(e\&.g\&. 12\&.24 Kib, 3\&.50 Mib)\&.
.RE
.PP
\-\-cherry\-mark
diff --git a/man1/git-rev-parse.1 b/man1/git-rev-parse.1
index 71f49ab33..37267dac2 100644
--- a/man1/git-rev-parse.1
+++ b/man1/git-rev-parse.1
@@ -2,12 +2,12 @@
.\" Title: git-rev-parse
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REV\-PARSE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REV\-PARSE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-revert.1 b/man1/git-revert.1
index c0fa8334a..344d6783e 100644
--- a/man1/git-revert.1
+++ b/man1/git-revert.1
@@ -2,12 +2,12 @@
.\" Title: git-revert
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-REVERT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-REVERT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -136,7 +136,12 @@ for details\&.
.PP
\-\-rerere\-autoupdate, \-\-no\-rerere\-autoupdate
.RS 4
-Allow the rerere mechanism to update the index with the result of auto\-conflict resolution if possible\&.
+After the rerere mechanism reuses a recorded resolution on the current conflict to update the files in the working tree, allow it to also update the index with the result of resolution\&.
+\fB\-\-no\-rerere\-autoupdate\fR
+is a good way to double\-check what
+\fBrerere\fR
+did and catch potential mismerges, before committing the result to the index with a separate
+\fBgit add\fR\&.
.RE
.PP
\-\-reference
diff --git a/man1/git-rm.1 b/man1/git-rm.1
index f9d9d5d8b..11b4eb70b 100644
--- a/man1/git-rm.1
+++ b/man1/git-rm.1
@@ -2,12 +2,12 @@
.\" Title: git-rm
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-RM" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-RM" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-send-email.1 b/man1/git-send-email.1
index 003e7b156..f82c7aeb1 100644
--- a/man1/git-send-email.1
+++ b/man1/git-send-email.1
@@ -2,12 +2,12 @@
.\" Title: git-send-email
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SEND\-EMAIL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SEND\-EMAIL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-send-pack.1 b/man1/git-send-pack.1
index aa1092b87..003b07ab5 100644
--- a/man1/git-send-pack.1
+++ b/man1/git-send-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-send-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SEND\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SEND\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-sh-i18n--envsubst.1 b/man1/git-sh-i18n--envsubst.1
index c15d42bbe..0cba09f38 100644
--- a/man1/git-sh-i18n--envsubst.1
+++ b/man1/git-sh-i18n--envsubst.1
@@ -2,12 +2,12 @@
.\" Title: git-sh-i18n--envsubst
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SH\-I18N\-\-ENV" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SH\-I18N\-\-ENV" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-sh-i18n.1 b/man1/git-sh-i18n.1
index 393db0811..2d7a30b2d 100644
--- a/man1/git-sh-i18n.1
+++ b/man1/git-sh-i18n.1
@@ -2,12 +2,12 @@
.\" Title: git-sh-i18n
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SH\-I18N" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SH\-I18N" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-sh-setup.1 b/man1/git-sh-setup.1
index 48ae4709b..b176aa1fc 100644
--- a/man1/git-sh-setup.1
+++ b/man1/git-sh-setup.1
@@ -2,12 +2,12 @@
.\" Title: git-sh-setup
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SH\-SETUP" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SH\-SETUP" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-shell.1 b/man1/git-shell.1
index c91338a44..d89f93ad2 100644
--- a/man1/git-shell.1
+++ b/man1/git-shell.1
@@ -2,12 +2,12 @@
.\" Title: git-shell
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHELL" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHELL" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-shortlog.1 b/man1/git-shortlog.1
index bead0bbc5..d3e26b694 100644
--- a/man1/git-shortlog.1
+++ b/man1/git-shortlog.1
@@ -2,12 +2,12 @@
.\" Title: git-shortlog
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHORTLOG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHORTLOG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-show-branch.1 b/man1/git-show-branch.1
index 4ae67638f..91682bb2e 100644
--- a/man1/git-show-branch.1
+++ b/man1/git-show-branch.1
@@ -2,12 +2,12 @@
.\" Title: git-show-branch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHOW\-BRANCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHOW\-BRANCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-show-index.1 b/man1/git-show-index.1
index b76da9836..b61e8bc49 100644
--- a/man1/git-show-index.1
+++ b/man1/git-show-index.1
@@ -2,12 +2,12 @@
.\" Title: git-show-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHOW\-INDEX" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHOW\-INDEX" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-show-ref.1 b/man1/git-show-ref.1
index ffd6a48af..0073d3c4c 100644
--- a/man1/git-show-ref.1
+++ b/man1/git-show-ref.1
@@ -2,12 +2,12 @@
.\" Title: git-show-ref
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHOW\-REF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHOW\-REF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-show.1 b/man1/git-show.1
index 3c7eb13db..b7c662646 100644
--- a/man1/git-show.1
+++ b/man1/git-show.1
@@ -2,12 +2,12 @@
.\" Title: git-show
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SHOW" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SHOW" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-sparse-checkout.1 b/man1/git-sparse-checkout.1
index 1a3d923da..526e7d0df 100644
--- a/man1/git-sparse-checkout.1
+++ b/man1/git-sparse-checkout.1
@@ -2,12 +2,12 @@
.\" Title: git-sparse-checkout
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SPARSE\-CHECKOU" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SPARSE\-CHECKOU" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-stage.1 b/man1/git-stage.1
index 23f44e7dc..6dd72e445 100644
--- a/man1/git-stage.1
+++ b/man1/git-stage.1
@@ -2,12 +2,12 @@
.\" Title: git-stage
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-STAGE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-STAGE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-stash.1 b/man1/git-stash.1
index fe8141f48..41b22c06c 100644
--- a/man1/git-stash.1
+++ b/man1/git-stash.1
@@ -2,12 +2,12 @@
.\" Title: git-stash
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-STASH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-STASH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-status.1 b/man1/git-status.1
index d69ed5166..2e6e982bf 100644
--- a/man1/git-status.1
+++ b/man1/git-status.1
@@ -2,12 +2,12 @@
.\" Title: git-status
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-STATUS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-STATUS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-stripspace.1 b/man1/git-stripspace.1
index a1b8ecb90..227df0fb4 100644
--- a/man1/git-stripspace.1
+++ b/man1/git-stripspace.1
@@ -2,12 +2,12 @@
.\" Title: git-stripspace
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-STRIPSPACE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-STRIPSPACE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-submodule.1 b/man1/git-submodule.1
index 7ca140577..de3c1f999 100644
--- a/man1/git-submodule.1
+++ b/man1/git-submodule.1
@@ -2,12 +2,12 @@
.\" Title: git-submodule
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SUBMODULE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SUBMODULE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-svn.1 b/man1/git-svn.1
index e563dd1e8..f58d184b0 100644
--- a/man1/git-svn.1
+++ b/man1/git-svn.1
@@ -2,12 +2,12 @@
.\" Title: git-svn
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SVN" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SVN" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-switch.1 b/man1/git-switch.1
index 54e9e3a87..27e1e03a8 100644
--- a/man1/git-switch.1
+++ b/man1/git-switch.1
@@ -2,12 +2,12 @@
.\" Title: git-switch
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SWITCH" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SWITCH" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-symbolic-ref.1 b/man1/git-symbolic-ref.1
index 4292fa730..a18dea361 100644
--- a/man1/git-symbolic-ref.1
+++ b/man1/git-symbolic-ref.1
@@ -2,12 +2,12 @@
.\" Title: git-symbolic-ref
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-SYMBOLIC\-REF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-SYMBOLIC\-REF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-tag.1 b/man1/git-tag.1
index 3541dd1a2..8e3f4c5e6 100644
--- a/man1/git-tag.1
+++ b/man1/git-tag.1
@@ -2,12 +2,12 @@
.\" Title: git-tag
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-TAG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-TAG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-unpack-file.1 b/man1/git-unpack-file.1
index 7c3a94d44..574dc8462 100644
--- a/man1/git-unpack-file.1
+++ b/man1/git-unpack-file.1
@@ -2,12 +2,12 @@
.\" Title: git-unpack-file
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UNPACK\-FILE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UNPACK\-FILE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-unpack-objects.1 b/man1/git-unpack-objects.1
index 0d71cf3f4..7706128bb 100644
--- a/man1/git-unpack-objects.1
+++ b/man1/git-unpack-objects.1
@@ -2,12 +2,12 @@
.\" Title: git-unpack-objects
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UNPACK\-OBJECTS" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UNPACK\-OBJECTS" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-update-index.1 b/man1/git-update-index.1
index 4a0309cd5..04004cd73 100644
--- a/man1/git-update-index.1
+++ b/man1/git-update-index.1
@@ -2,12 +2,12 @@
.\" Title: git-update-index
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UPDATE\-INDEX" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UPDATE\-INDEX" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-update-ref.1 b/man1/git-update-ref.1
index fb4709f7d..1a5cb2e57 100644
--- a/man1/git-update-ref.1
+++ b/man1/git-update-ref.1
@@ -2,12 +2,12 @@
.\" Title: git-update-ref
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UPDATE\-REF" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UPDATE\-REF" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-update-server-info.1 b/man1/git-update-server-info.1
index 9cdaf599e..5c8838d20 100644
--- a/man1/git-update-server-info.1
+++ b/man1/git-update-server-info.1
@@ -2,12 +2,12 @@
.\" Title: git-update-server-info
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UPDATE\-SERVER\" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UPDATE\-SERVER\" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-upload-archive.1 b/man1/git-upload-archive.1
index 5f28a0fea..d3c60e673 100644
--- a/man1/git-upload-archive.1
+++ b/man1/git-upload-archive.1
@@ -2,12 +2,12 @@
.\" Title: git-upload-archive
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UPLOAD\-ARCHIVE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UPLOAD\-ARCHIVE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-upload-pack.1 b/man1/git-upload-pack.1
index be0a34d8e..4db2da75c 100644
--- a/man1/git-upload-pack.1
+++ b/man1/git-upload-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-upload-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-UPLOAD\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-UPLOAD\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -65,9 +65,9 @@ Used by
to serve up
\fB$GIT_URL/info/refs?service=git\-upload\-pack\fR
requests\&. See "Smart Clients" in
-\m[blue]\fBthe HTTP transfer protocols\fR\m[]\&\s-2\u[1]\d\s+2
-documentation and "HTTP Transport" in
-\m[blue]\fBthe Git Wire Protocol, Version 2\fR\m[]\&\s-2\u[2]\d\s+2
+\fBgitprotocol-http\fR(5)
+and "HTTP Transport" in in the
+\fBgitprotocol-v2\fR(5)
documentation\&. Also understood by
\fBgit-receive-pack\fR(1)\&.
.RE
@@ -89,14 +89,3 @@ Internal variable used for handshaking the wire protocol\&. Server admins may ne
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
-.SH "NOTES"
-.IP " 1." 4
-the HTTP transfer protocols
-.RS 4
-\%git-htmldocs/technical/http-protocol.html
-.RE
-.IP " 2." 4
-the Git Wire Protocol, Version 2
-.RS 4
-\%git-htmldocs/technical/protocol-v2.html
-.RE
diff --git a/man1/git-var.1 b/man1/git-var.1
index 87df17a8e..2767c59ce 100644
--- a/man1/git-var.1
+++ b/man1/git-var.1
@@ -2,12 +2,12 @@
.\" Title: git-var
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-VAR" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-VAR" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-verify-commit.1 b/man1/git-verify-commit.1
index b8035a3ab..4dea6bdbd 100644
--- a/man1/git-verify-commit.1
+++ b/man1/git-verify-commit.1
@@ -2,12 +2,12 @@
.\" Title: git-verify-commit
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-VERIFY\-COMMIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-VERIFY\-COMMIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-verify-pack.1 b/man1/git-verify-pack.1
index bdb37d01b..3de907471 100644
--- a/man1/git-verify-pack.1
+++ b/man1/git-verify-pack.1
@@ -2,12 +2,12 @@
.\" Title: git-verify-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-VERIFY\-PACK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-VERIFY\-PACK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-verify-tag.1 b/man1/git-verify-tag.1
index 26a475401..a9297f182 100644
--- a/man1/git-verify-tag.1
+++ b/man1/git-verify-tag.1
@@ -2,12 +2,12 @@
.\" Title: git-verify-tag
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-VERIFY\-TAG" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-VERIFY\-TAG" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-version.1 b/man1/git-version.1
index ff7d651cb..3f04605ac 100644
--- a/man1/git-version.1
+++ b/man1/git-version.1
@@ -2,12 +2,12 @@
.\" Title: git-version
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-VERSION" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-VERSION" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-web--browse.1 b/man1/git-web--browse.1
index 60d612187..e1496e947 100644
--- a/man1/git-web--browse.1
+++ b/man1/git-web--browse.1
@@ -2,12 +2,12 @@
.\" Title: git-web--browse
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-WEB\-\-BROWSE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-WEB\-\-BROWSE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-whatchanged.1 b/man1/git-whatchanged.1
index 4deae9398..774739c54 100644
--- a/man1/git-whatchanged.1
+++ b/man1/git-whatchanged.1
@@ -2,12 +2,12 @@
.\" Title: git-whatchanged
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-WHATCHANGED" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-WHATCHANGED" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-worktree.1 b/man1/git-worktree.1
index 88ca25279..29dbec27d 100644
--- a/man1/git-worktree.1
+++ b/man1/git-worktree.1
@@ -2,12 +2,12 @@
.\" Title: git-worktree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-WORKTREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-WORKTREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git-write-tree.1 b/man1/git-write-tree.1
index becf73611..dea2fd9fc 100644
--- a/man1/git-write-tree.1
+++ b/man1/git-write-tree.1
@@ -2,12 +2,12 @@
.\" Title: git-write-tree
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT\-WRITE\-TREE" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT\-WRITE\-TREE" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/git.1 b/man1/git.1
index 039e61a72..118931672 100644
--- a/man1/git.1
+++ b/man1/git.1
@@ -2,12 +2,12 @@
.\" Title: git
.\" Author: [see the "Authors" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GIT" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GIT" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -1123,16 +1123,6 @@ Remove unnecessary whitespace\&.
.sp
The following documentation pages are guides about Git concepts\&.
.PP
-\fBgitattributes\fR(5)
-.RS 4
-Defining attributes per path\&.
-.RE
-.PP
-\fBgitcli\fR(7)
-.RS 4
-Git command\-line interface and conventions\&.
-.RE
-.PP
\fBgitcore-tutorial\fR(7)
.RS 4
A Git core tutorial for developers\&.
@@ -1168,6 +1158,49 @@ Frequently asked questions about using Git\&.
A Git Glossary\&.
.RE
.PP
+\fBgitnamespaces\fR(7)
+.RS 4
+Git namespaces\&.
+.RE
+.PP
+\fBgitremote-helpers\fR(7)
+.RS 4
+Helper programs to interact with remote repositories\&.
+.RE
+.PP
+\fBgitsubmodules\fR(7)
+.RS 4
+Mounting one repository inside another\&.
+.RE
+.PP
+\fBgittutorial\fR(7)
+.RS 4
+A tutorial introduction to Git\&.
+.RE
+.PP
+\fBgittutorial-2\fR(7)
+.RS 4
+A tutorial introduction to Git: part two\&.
+.RE
+.PP
+\fBgitworkflows\fR(7)
+.RS 4
+An overview of recommended workflows with Git\&.
+.RE
+.SH "REPOSITORY, COMMAND AND FILE INTERFACES"
+.sp
+This documentation discusses repository and command interfaces which users are expected to interact with directly\&. See \fB\-\-user\-formats\fR in \fBgit-help\fR(1) for more details on the critera\&.
+.PP
+\fBgitattributes\fR(5)
+.RS 4
+Defining attributes per path\&.
+.RE
+.PP
+\fBgitcli\fR(7)
+.RS 4
+Git command\-line interface and conventions\&.
+.RE
+.PP
\fBgithooks\fR(5)
.RS 4
Hooks used by Git\&.
@@ -1188,44 +1221,72 @@ Map author/committer names and/or E\-Mail addresses\&.
Defining submodule properties\&.
.RE
.PP
-\fBgitnamespaces\fR(7)
+\fBgitrepository-layout\fR(5)
.RS 4
-Git namespaces\&.
+Git Repository Layout\&.
.RE
.PP
-\fBgitremote-helpers\fR(7)
+\fBgitrevisions\fR(7)
.RS 4
-Helper programs to interact with remote repositories\&.
+Specifying revisions and ranges for Git\&.
.RE
+.SH "FILE FORMATS, PROTOCOLS AND OTHER DEVELOPER INTERFACES"
+.sp
+This documentation discusses file formats, over\-the\-wire protocols and other git developer interfaces\&. See \fB\-\-developer\-interfaces\fR in \fBgit-help\fR(1)\&.
.PP
-\fBgitrepository-layout\fR(5)
+\fBgitformat-bundle\fR(5)
.RS 4
-Git Repository Layout\&.
+The bundle file format\&.
.RE
.PP
-\fBgitrevisions\fR(7)
+\fBgitformat-chunk\fR(5)
.RS 4
-Specifying revisions and ranges for Git\&.
+Chunk\-based file formats\&.
.RE
.PP
-\fBgitsubmodules\fR(7)
+\fBgitformat-commit-graph\fR(5)
.RS 4
-Mounting one repository inside another\&.
+Git commit graph format\&.
.RE
.PP
-\fBgittutorial\fR(7)
+\fBgitformat-index\fR(5)
.RS 4
-A tutorial introduction to Git\&.
+Git index format\&.
.RE
.PP
-\fBgittutorial-2\fR(7)
+\fBgitformat-pack\fR(5)
.RS 4
-A tutorial introduction to Git: part two\&.
+Git pack format\&.
.RE
.PP
-\fBgitworkflows\fR(7)
+\fBgitformat-signature\fR(5)
.RS 4
-An overview of recommended workflows with Git\&.
+Git cryptographic signature formats\&.
+.RE
+.PP
+\fBgitprotocol-capabilities\fR(5)
+.RS 4
+Protocol v0 and v1 capabilities\&.
+.RE
+.PP
+\fBgitprotocol-common\fR(5)
+.RS 4
+Things common to various protocols\&.
+.RE
+.PP
+\fBgitprotocol-http\fR(5)
+.RS 4
+Git HTTP\-based protocols\&.
+.RE
+.PP
+\fBgitprotocol-pack\fR(5)
+.RS 4
+How packs are transferred over\-the\-wire\&.
+.RE
+.PP
+\fBgitprotocol-v2\fR(5)
+.RS 4
+Git Wire Protocol, Version 2\&.
.RE
.SH "CONFIGURATION MECHANISM"
.sp
diff --git a/man1/gitk.1 b/man1/gitk.1
index 8ed22dbea..b1d536e0d 100644
--- a/man1/gitk.1
+++ b/man1/gitk.1
@@ -2,12 +2,12 @@
.\" Title: gitk
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITK" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITK" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man1/gitweb.1 b/man1/gitweb.1
index 0a4beca70..3196c58b1 100644
--- a/man1/gitweb.1
+++ b/man1/gitweb.1
@@ -2,12 +2,12 @@
.\" Title: gitweb
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITWEB" "1" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITWEB" "1" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitattributes.5 b/man5/gitattributes.5
index fdc2ce242..92eadb60b 100644
--- a/man5/gitattributes.5
+++ b/man5/gitattributes.5
@@ -2,12 +2,12 @@
.\" Title: gitattributes
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITATTRIBUTES" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITATTRIBUTES" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitformat-bundle.5 b/man5/gitformat-bundle.5
new file mode 100644
index 000000000..7960ee99e
--- /dev/null
+++ b/man5/gitformat-bundle.5
@@ -0,0 +1,178 @@
+'\" t
+.\" Title: gitformat-bundle
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-BUNDLE" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-bundle \- The bundle file format
+.SH "SYNOPSIS"
+.sp
+.nf
+*\&.bundle
+*\&.bdl
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+The Git bundle format is a format that represents both refs and Git objects\&. A bundle is a header in a format similar to \fBgit-show-ref\fR(1) followed by a pack in *\&.pack format\&.
+.sp
+The format is created and read by the \fBgit-bundle\fR(1) command, and supported by e\&.g\&. \fBgit-fetch\fR(1) and \fBgit-clone\fR(1)\&.
+.SH "FORMAT"
+.sp
+We will use ABNF notation to define the Git bundle format\&. See \fBgitprotocol-common\fR(5) for the details\&.
+.sp
+A v2 bundle looks like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+bundle = signature *prerequisite *reference LF pack
+signature = "# v2 git bundle" LF
+
+prerequisite = "\-" obj\-id SP comment LF
+comment = *CHAR
+reference = obj\-id SP refname LF
+
+pack = \&.\&.\&. ; packfile
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+A v3 bundle looks like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+bundle = signature *capability *prerequisite *reference LF pack
+signature = "# v3 git bundle" LF
+
+capability = "@" key ["=" value] LF
+prerequisite = "\-" obj\-id SP comment LF
+comment = *CHAR
+reference = obj\-id SP refname LF
+key = 1*(ALPHA / DIGIT / "\-")
+value = *(%01\-09 / %0b\-FF)
+
+pack = \&.\&.\&. ; packfile
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "SEMANTICS"
+.sp
+A Git bundle consists of several parts\&.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"Capabilities", which are only in the v3 format, indicate functionality that the bundle requires to be read properly\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"Prerequisites" lists the objects that are NOT included in the bundle and the reader of the bundle MUST already have, in order to use the data in the bundle\&. The objects stored in the bundle may refer to prerequisite objects and anything reachable from them (e\&.g\&. a tree object in the bundle can reference a blob that is reachable from a prerequisite) and/or expressed as a delta against prerequisite objects\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"References" record the tips of the history graph, iow, what the reader of the bundle CAN "git fetch" from it\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"Pack" is the pack data stream "git fetch" would send, if you fetch from a repository that has the references recorded in the "References" above into a repository that has references pointing at the objects listed in "Prerequisites" above\&.
+.RE
+.sp
+In the bundle format, there can be a comment following a prerequisite obj\-id\&. This is a comment and it has no specific meaning\&. The writer of the bundle MAY put any string here\&. The reader of the bundle MUST ignore the comment\&.
+.SS "Note on the shallow clone and a Git bundle"
+.sp
+Note that the prerequisites does not represent a shallow\-clone boundary\&. The semantics of the prerequisites and the shallow\-clone boundaries are different, and the Git bundle v2 format cannot represent a shallow clone repository\&.
+.SH "CAPABILITIES"
+.sp
+Because there is no opportunity for negotiation, unknown capabilities cause \fIgit bundle\fR to abort\&.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBobject\-format\fR
+specifies the hash algorithm in use, and can take the same values as the
+\fBextensions\&.objectFormat\fR
+configuration value\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBfilter\fR
+specifies an object filter as in the
+\fB\-\-filter\fR
+option in
+\fBgit-rev-list\fR(1)\&. The resulting pack\-file must be marked as a
+\fB\&.promisor\fR
+pack\-file after it is unbundled\&.
+.RE
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitformat-chunk.5 b/man5/gitformat-chunk.5
new file mode 100644
index 000000000..3e717af69
--- /dev/null
+++ b/man5/gitformat-chunk.5
@@ -0,0 +1,156 @@
+'\" t
+.\" Title: gitformat-chunk
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-CHUNK" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-chunk \- Chunk\-based file formats
+.SH "SYNOPSIS"
+.sp
+Used by \fBgitformat-commit-graph\fR(5) and the "MIDX" format (see the pack format documentation in \fBgitformat-pack\fR(5))\&.
+.SH "DESCRIPTION"
+.sp
+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 scanning a small "table of contents" for the remaining data\&. This common format is used by the \fBcommit\-graph\fR and \fBmulti\-pack\-index\fR files\&. See the \fBmulti\-pack\-index\fR format in \fBgitformat-pack\fR(5) and the \fBcommit\-graph\fR format in \fBgitformat-commit-graph\fR(5) for how they use the chunks to describe structured data\&.
+.sp
+A chunk\-based file format begins with some header information custom to that format\&. That header should include enough information to identify the file type, format version, and number of chunks in the file\&. From this information, that file can determine the start of the chunk\-based region\&.
+.sp
+The chunk\-based region starts with a table of contents describing where each chunk starts and ends\&. This consists of (C+1) rows of 12 bytes each, where C is the number of chunks\&. Consider the following table:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+| Chunk ID (4 bytes) | Chunk Offset (8 bytes) |
+|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
+| ID[0] | OFFSET[0] |
+| \&.\&.\&. | \&.\&.\&. |
+| ID[C] | OFFSET[C] |
+| 0x0000 | OFFSET[C+1] |
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Each row consists of a 4\-byte chunk identifier (ID) and an 8\-byte offset\&. Each integer is stored in network\-byte order\&.
+.sp
+The chunk identifier \fBID[i]\fR is a label for the data stored within this fill from \fBOFFSET[i]\fR (inclusive) to \fBOFFSET[i+1]\fR (exclusive)\&. Thus, the size of the \fBi`th chunk is equal to the difference between `OFFSET[i+1]\fR and \fBOFFSET[i]\fR\&. This requires that the chunk data appears contiguously in the same order as the table of contents\&.
+.sp
+The final entry in the table of contents must be four zero bytes\&. This confirms that the table of contents is ending and provides the offset for the end of the chunk\-based data\&.
+.sp
+Note: The chunk\-based format expects that the file contains \fIat least\fR a trailing hash after \fBOFFSET[C+1]\fR\&.
+.sp
+Functions for working with chunk\-based file formats are declared in \fBchunk\-format\&.h\fR\&. Using these methods provide extra checks that assist developers when creating new file formats\&.
+.SH "WRITING CHUNK\-BASED FILE FORMATS"
+.sp
+To write a chunk\-based file format, create a \fBstruct chunkfile\fR by calling \fBinit_chunkfile()\fR and pass a \fBstruct hashfile\fR pointer\&. The caller is responsible for opening the \fBhashfile\fR and writing header information so the file format is identifiable before the chunk\-based format begins\&.
+.sp
+Then, call \fBadd_chunk()\fR for each chunk that is intended for write\&. This populates the \fBchunkfile\fR with information about the order and size of each chunk to write\&. Provide a \fBchunk_write_fn\fR function pointer to perform the write of the chunk data upon request\&.
+.sp
+Call \fBwrite_chunkfile()\fR to write the table of contents to the \fBhashfile\fR followed by each of the chunks\&. This will verify that each chunk wrote the expected amount of data so the table of contents is correct\&.
+.sp
+Finally, call \fBfree_chunkfile()\fR to clear the \fBstruct chunkfile\fR data\&. The caller is responsible for finalizing the \fBhashfile\fR by writing the trailing hash and closing the file\&.
+.SH "READING CHUNK\-BASED FILE FORMATS"
+.sp
+To read a chunk\-based file format, the file must be opened as a memory\-mapped region\&. The chunk\-format API expects that the entire file is mapped as a contiguous memory region\&.
+.sp
+Initialize a \fBstruct chunkfile\fR pointer with \fBinit_chunkfile(NULL)\fR\&.
+.sp
+After reading the header information from the beginning of the file, including the chunk count, call \fBread_table_of_contents()\fR to populate the \fBstruct chunkfile\fR with the list of chunks, their offsets, and their sizes\&.
+.sp
+Extract the data information for each chunk using \fBpair_chunk()\fR or \fBread_chunk()\fR:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBpair_chunk()\fR
+assigns a given pointer with the location inside the memory\-mapped file corresponding to that chunk\(cqs offset\&. If the chunk does not exist, then the pointer is not modified\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBread_chunk()\fR
+takes a
+\fBchunk_read_fn\fR
+function pointer and calls it with the appropriate initial pointer and size information\&. The function is not called if the chunk does not exist\&. Use this method to read chunks if you need to perform immediate parsing or if you need to execute logic based on the size of the chunk\&.
+.RE
+.sp
+After calling these methods, call \fBfree_chunkfile()\fR to clear the \fBstruct chunkfile\fR data\&. This will not close the memory\-mapped region\&. Callers are expected to own that data for the timeframe the pointers into the region are needed\&.
+.SH "EXAMPLES"
+.sp
+These file formats use the chunk\-format API, and can be used as examples for future formats:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBcommit\-graph:\fR
+see
+\fBwrite_commit_graph_file()\fR
+and
+\fBparse_commit_graph()\fR
+in
+\fBcommit\-graph\&.c\fR
+for how the chunk\-format API is used to write and parse the commit\-graph file format documented in the commit\-graph file format in
+\fBgitformat-commit-graph\fR(5)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBmulti\-pack\-index:\fR
+see
+\fBwrite_midx_internal()\fR
+and
+\fBload_multi_pack_index()\fR
+in
+\fBmidx\&.c\fR
+for how the chunk\-format API is used to write and parse the multi\-pack\-index file format documented in the multi\-pack\-index file format section of
+\fBgitformat-pack\fR(5)\&.
+.RE
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitformat-commit-graph.5 b/man5/gitformat-commit-graph.5
new file mode 100644
index 000000000..97ee3e8f5
--- /dev/null
+++ b/man5/gitformat-commit-graph.5
@@ -0,0 +1,547 @@
+'\" t
+.\" Title: gitformat-commit-graph
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-COMMIT\-G" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-commit-graph \- Git commit graph format
+.SH "SYNOPSIS"
+.sp
+.nf
+$GIT_DIR/objects/info/commit\-graph
+$GIT_DIR/objects/info/commit\-graphs/*
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+The Git commit graph stores a list of commit OIDs and some associated metadata, including:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The generation number of the commit\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The root tree OID\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The commit date\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The parents of the commit, stored using positional references within the graph file\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The Bloom filter of the commit carrying the paths that were changed between the commit and its first parent, if requested\&.
+.RE
+.sp
+These positional references are stored as unsigned 32\-bit integers corresponding to the array position within the list of commit OIDs\&. Due to some special constants we use to track parents, we can store at most (1 << 30) + (1 << 29) + (1 << 28) \- 1 (around 1\&.8 billion) commits\&.
+.SH "COMMIT GRAPH FILES HAVE THE FOLLOWING FORMAT:"
+.sp
+In order to allow extensions that add extra data to the graph, we organize the body into "chunks" and provide a binary lookup table at the beginning of the body\&. The header includes certain values, such as number of chunks and hash type\&.
+.sp
+All multi\-byte numbers are in network byte order\&.
+.SS "HEADER:"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte signature:
+ The signature is: {\(aqC\(aq, \(aqG\(aq, \(aqP\(aq, \(aqH\(aq}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte version number:
+ Currently, the only valid version is 1\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte Hash Version
+ We infer the hash length (H) from this value:
+ 1 => SHA\-1
+ 2 => SHA\-256
+ If the hash type does not match the repository\(aqs hash algorithm, the
+ commit\-graph file should be ignored with a warning presented to the
+ user\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte number (C) of "chunks"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte number (B) of base commit\-graphs
+ We infer the length (H*B) of the Base Graphs chunk
+ from this value\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SS "CHUNK LOOKUP:"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C + 1) * 12 bytes listing the table of contents for the chunks:
+ First 4 bytes describe the chunk id\&. Value 0 is a terminating label\&.
+ Other 8 bytes provide the byte\-offset in current file for chunk to
+ start\&. (Chunks are ordered contiguously in the file, so you can infer
+ the length using the next chunk position if necessary\&.) Each chunk
+ ID appears at most once\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The CHUNK LOOKUP matches the table of contents from
+the chunk\-based file format, see linkgit:gitformat\-chunk[5]
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+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
+otherwise specified\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SS "CHUNK DATA:"
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBOID Fanout (ID: {O, I, D, F}) (256 * 4 bytes)\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The ith entry, F[i], stores the number of OIDs with first
+byte at most i\&. Thus F[255] stores the total
+number of commits (N)\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBOID Lookup (ID: {O, I, D, L}) (N * H bytes)\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The OIDs for all commits in the graph, sorted in ascending order\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBCommit Data (ID: {C, D, A, T }) (N * (H + 16) bytes)\fR
+.RS 4
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The first H bytes are for the OID of the root tree\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The next 8 bytes are for the positions of the first two parents of the ith commit\&. Stores value 0x70000000 if no parent in that position\&. If there are more than two parents, the second value has its most\-significant bit on and the other bits store an array position into the Extra Edge List chunk\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The next 8 bytes store the topological level (generation number v1) of the commit and the commit time in seconds since EPOCH\&. The generation number uses the higher 30 bits of the first 4 bytes, while the commit time uses the 32 bits of the second 4 bytes, along with the lowest 2 bits of the lowest byte, storing the 33rd and 34th bit of the commit time\&.
+.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBGeneration Data (ID: {G, D, A, 2 }) (N * 4 bytes) [Optional]\fR
+.RS 4
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+This list of 4\-byte values store corrected commit date offsets for the commits, arranged in the same order as commit data chunk\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+If the corrected commit date offset cannot be stored within 31 bits, the value has its most\-significant bit on and the other bits store the position of corrected commit date into the Generation Data Overflow chunk\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Generation Data chunk is present only when commit\-graph file is written by compatible versions of Git and in case of split commit\-graph chains, the topmost layer also has Generation Data chunk\&.
+.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBGeneration Data Overflow (ID: {G, D, O, 2 }) [Optional]\fR
+.RS 4
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+This list of 8\-byte values stores the corrected commit date offsets for commits with corrected commit date offsets that cannot be stored within 31 bits\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Generation Data Overflow chunk is present only when Generation Data chunk is present and atleast one corrected commit date offset cannot be stored within 31 bits\&.
+.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBExtra Edge List (ID: {E, D, G, E}) [Optional]\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+This list of 4\-byte values store the second through nth parents for
+all octopus merges\&. The second parent value in the commit data stores
+an array position within this list along with the most\-significant bit
+on\&. Starting at that array position, iterate through this list of commit
+positions for the parents until reaching a value with the most\-significant
+bit on\&. The other bits correspond to the position of the last parent\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBBloom Filter Index (ID: {B, I, D, X}) (N * 4 bytes) [Optional]\fR
+.RS 4
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The ith entry, BIDX[i], stores the number of bytes in all Bloom filters from commit 0 to commit i (inclusive) in lexicographic order\&. The Bloom filter for the i\-th commit spans from BIDX[i\-1] to BIDX[i] (plus header length), where BIDX[\-1] is 0\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The BIDX chunk is ignored if the BDAT chunk is not present\&.
+.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBBloom Filter Data (ID: {B, D, A, T}) [Optional]\fR
+.RS 4
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+It starts with header consisting of three unsigned 32\-bit integers:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Version of the hash algorithm being used\&. We currently only support value 1 which corresponds to the 32\-bit version of the murmur3 hash implemented exactly as described in
+\m[blue]\fBhttps://en\&.wikipedia\&.org/wiki/MurmurHash#Algorithm\fR\m[]
+and the double hashing technique using seed values 0x293ae76f and 0x7e646e2 as described in
+\m[blue]\fBhttps://doi\&.org/10\&.1007/978\-3\-540\-30494\-4_26\fR\m[]
+"Bloom Filters in Probabilistic Verification"
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The number of times a path is hashed and hence the number of bit positions that cumulatively determine whether a file is present in the commit\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The minimum number of bits
+\fIb\fR
+per entry in the Bloom filter\&. If the filter contains
+\fIn\fR
+entries, then the filter size is the minimum number of 64\-bit words that contain n*b bits\&.
+.RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The rest of the chunk is the concatenation of all the computed Bloom filters for the commits in lexicographic order\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Note: Commits with no changes or more than 512 changes have Bloom filters of length one, with either all bits set to zero or one respectively\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The BDAT chunk is present if and only if BIDX is present\&.
+.RE
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBBase Graphs List (ID: {B, A, S, E}) [Optional]\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+This list of H\-byte hashes describe a set of B commit\-graph files that
+form a commit\-graph chain\&. The graph position for the ith commit in this
+file\(aqs OID Lookup chunk is equal to i plus the number of commits in all
+base graphs\&. If B is non\-zero, this chunk must exist\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SS "TRAILER:"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+H\-byte HASH\-checksum of all of the above\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SH "HISTORICAL NOTES:"
+.sp
+The Generation Data (GDA2) and Generation Data Overflow (GDO2) chunks have the number \fI2\fR in their chunk IDs because a previous version of Git wrote possibly erroneous data in these chunks with the IDs "GDAT" and "GDOV"\&. By changing the IDs, newer versions of Git will silently ignore those older chunks and write the new information without trusting the incorrect data\&.
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitformat-index.5 b/man5/gitformat-index.5
new file mode 100644
index 000000000..b2fe085b9
--- /dev/null
+++ b/man5/gitformat-index.5
@@ -0,0 +1,1339 @@
+'\" t
+.\" Title: gitformat-index
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-INDEX" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-index \- Git index format
+.SH "SYNOPSIS"
+.sp
+.nf
+$GIT_DIR/index
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+Git index format
+.SH "THE GIT INDEX FILE HAS THE FOLLOWING FORMAT"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+All binary numbers are in network byte order\&.
+In a repository using the traditional SHA\-1, checksums and object IDs
+(object names) mentioned below are all computed using SHA\-1\&. Similarly,
+in SHA\-256 repositories, these values are computed using SHA\-256\&.
+Version 2 is described here unless stated otherwise\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 12\-byte header consisting of
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte signature:
+ The signature is { \(aqD\(aq, \(aqI\(aq, \(aqR\(aq, \(aqC\(aq } (stands for "dircache")
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte version number:
+ The current supported versions are 2, 3 and 4\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit number of index entries\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A number of sorted index entries (see below)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Extensions
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Extensions are identified by signature\&. Optional extensions can
+be ignored if Git does not understand them\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte extension signature\&. If the first byte is \(aqA\(aq\&.\&.\(aqZ\(aq the
+extension is optional and can be ignored\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit size of the extension
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Extension data
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Hash checksum over the content of the index file before this checksum\&.
+.RE
+.SH "INDEX ENTRY"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Index entries are sorted in ascending order on the name field,
+interpreted as a string of unsigned bytes (i\&.e\&. memcmp() order, no
+localization, no special casing of directory separator \(aq/\(aq)\&. Entries
+with the same name are sorted by their stage field\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+An index entry typically represents a file\&. However, if sparse\-checkout
+is enabled in cone mode (`core\&.sparseCheckoutCone` is enabled) and the
+`extensions\&.sparseIndex` extension is enabled, then the index may
+contain entries for directories outside of the sparse\-checkout definition\&.
+These entries have mode `040000`, include the `SKIP_WORKTREE` bit, and
+the path ends in a directory separator\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit ctime seconds, the last time a file\(aqs metadata changed
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit ctime nanosecond fractions
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit mtime seconds, the last time a file\(aqs data changed
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit mtime nanosecond fractions
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit dev
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit ino
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit mode, split into (high to low bits)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-bit object type
+ valid values in binary are 1000 (regular file), 1010 (symbolic link)
+ and 1110 (gitlink)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+3\-bit unused
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+9\-bit unix permission\&. Only 0755 and 0644 are valid for regular files\&.
+Symbolic links and gitlinks have value 0 in this field\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit uid
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit gid
+ this is stat(2) data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+32\-bit file size
+ This is the on\-disk size from stat(2), truncated to 32\-bit\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Object name for the represented object
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A 16\-bit \(aqflags\(aq field split into (high to low bits)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-bit assume\-valid flag
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-bit extended flag (must be zero in version 2)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+2\-bit stage (during merge)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+12\-bit name length if the length is less than 0xFFF; otherwise 0xFFF
+is stored in this field\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(Version 3 or later) A 16\-bit field, only applicable if the
+"extended flag" above is 1, split into (high to low bits)\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-bit reserved for future
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-bit skip\-worktree flag (used by sparse checkout)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-bit intent\-to\-add flag (used by "git add \-N")
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+13\-bit unused, must be zero
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Entry path name (variable length) relative to top level directory
+ (without leading slash)\&. \(aq/\(aq is used as path separator\&. The special
+ path components "\&.", "\&.\&." and "\&.git" (without quotes) are disallowed\&.
+ Trailing slash is also disallowed\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The exact encoding is undefined, but the \(aq\&.\(aq and \(aq/\(aq characters
+are encoded in 7\-bit ASCII and the encoding cannot contain a NUL
+byte (iow, this is a UNIX pathname)\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(Version 4) In version 4, the entry path name is prefix\-compressed
+ relative to the path name for the previous entry (the very first
+ 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
+ variable width encoding (the same encoding as the offset is encoded
+ 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
+ path name for the previous entry, and replacing it with the string S
+ yields the path name for this entry\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-8 nul bytes as necessary to pad the entry to a multiple of eight bytes
+while keeping the name NUL\-terminated\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(Version 4) In version 4, the padding after the pathname does not
+exist\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Interpretation of index entries in split index mode is completely
+different\&. See below for details\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SH "EXTENSIONS"
+.SS "Cache tree"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Since the index does not record entries for directories, the cache
+entries cannot describe tree objects that already exist in the object
+database for regions of the index that are unchanged from an existing
+commit\&. The cache tree extension stores a recursive tree structure that
+describes the trees that already exist and completely match sections of
+the cache entries\&. This speeds up tree object generation from the index
+for a new commit by only computing the trees that are "new" to that
+commit\&. It also assists when comparing the index to another tree, such
+as `HEAD^{tree}`, since sections of the index can be skipped when a tree
+comparison demonstrates equality\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The recursive tree structure uses nodes that store a number of cache
+entries, a list of subnodes, and an object ID (OID)\&. The OID references
+the existing tree for that node, if it is known to exist\&. The subnodes
+correspond to subdirectories that themselves have cache tree nodes\&. The
+number of cache entries corresponds to the number of cache entries in
+the index that describe paths within that tree\(aqs directory\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension tracks the full directory structure in the cache tree
+extension, but this is generally smaller than the full cache entry list\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+When a path is updated in index, Git invalidates all nodes of the
+recursive cache tree corresponding to the parent directories of that
+path\&. We store these tree nodes as being "invalid" by using "\-1" as the
+number of cache entries\&. Invalid nodes still store a span of index
+entries, allowing Git to focus its efforts when reconstructing a full
+cache tree\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The signature for this extension is { \(aqT\(aq, \(aqR\(aq, \(aqE\(aq, \(aqE\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A series of entries fill the entire extension; each of which
+consists of:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+NUL\-terminated path component (relative to its parent directory);
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+ASCII decimal number of entries in the index that is covered by the tree this entry represents (entry_count);
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A space (ASCII 32);
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+ASCII decimal number that represents the number of subtrees this tree has;
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A newline (ASCII 10); and
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Object name for the object that would result from writing this span of index as a tree\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+An entry can be in an invalidated state and is represented by having
+a negative number in the entry_count field\&. In this case, there is no
+object name and the next entry starts immediately after the newline\&.
+When writing an invalid entry, \-1 should always be used as entry_count\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The entries are written out in the top\-down, depth\-first order\&. The
+first entry represents the root level of the repository, followed by the
+first subtree\-\-let\(aqs call this A\-\-of the root level (with its name
+relative to the root level), followed by the first subtree of A (with
+its name relative to A), and so on\&. The specified number of subtrees
+indicates when the current level of the recursive stack is complete\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SS "Resolve undo"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A conflict is represented in the index as a set of higher stage entries\&.
+When a conflict is resolved (e\&.g\&. with "git add path"), these higher
+stage entries will be removed and a stage\-0 entry with proper resolution
+is added\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+When these higher stage entries are removed, they are saved in the
+resolve undo extension, so that conflicts can be recreated (e\&.g\&. with
+"git checkout \-m"), in case users want to redo a conflict resolution
+from scratch\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The signature for this extension is { \(aqR\(aq, \(aqE\(aq, \(aqU\(aq, \(aqC\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A series of entries fill the entire extension; each of which
+consists of:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+NUL\-terminated pathname the entry describes (relative to the root of the repository, i\&.e\&. full pathname);
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Three NUL\-terminated ASCII octal numbers, entry mode of entries in stage 1 to 3 (a missing stage is represented by "0" in this field); and
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+At most three object names of the entry in stages from 1 to 3 (nothing is written for a missing stage)\&.
+.RE
+.SS "Split index"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+In split index mode, the majority of index entries could be stored
+in a separate file\&. This extension records the changes to be made on
+top of that to produce the final index\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The signature for this extension is { \(aql\(aq, \(aqi\(aq, \(aqn\(aq, \(aqk\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension consists of:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Hash of the shared index file\&. The shared index file path is $GIT_DIR/sharedindex\&.<hash>\&. If all bits are zero, the index does not require a shared index file\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah\-encoded delete bitmap, each bit represents an entry in the shared index\&. If a bit is set, its corresponding entry in the shared index will be removed from the final index\&. Note, because a delete operation changes index entry positions, but we do need original positions in replace phase, it\(cqs best to just mark entries for removal, then do a mass deletion after replacement\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah\-encoded replace bitmap, each bit represents an entry in the shared index\&. If a bit is set, its corresponding entry in the shared index will be replaced with an entry in this index file\&. All replaced entries are stored in sorted order in this index\&. The first "1" bit in the replace bitmap corresponds to the first index entry, the second "1" bit to the second entry and so on\&. Replaced entries may have empty path names to save space\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The remaining index entries after replaced ones will be added to the
+final index\&. These added entries are also sorted by entry name then
+stage\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SH "UNTRACKED CACHE"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Untracked cache saves the untracked file list and necessary data to
+verify the cache\&. The signature for this extension is { \(aqU\(aq, \(aqN\(aq,
+\(aqT\(aq, \(aqR\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension starts with
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A sequence of NUL\-terminated strings, preceded by the size of the sequence in variable width encoding\&. Each string describes the environment where the cache can be used\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Stat data of $GIT_DIR/info/exclude\&. See "Index entry" section from ctime field until "file size"\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Stat data of core\&.excludesFile
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit dir_flags (see struct dir_struct)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Hash of $GIT_DIR/info/exclude\&. A null hash means the file does not exist\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Hash of core\&.excludesFile\&. A null hash means the file does not exist\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+NUL\-terminated string of per\-dir exclude file name\&. This usually is "\&.gitignore"\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The number of following directory blocks, variable width encoding\&. If this number is zero, the extension ends here with a following NUL\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A number of directory blocks in depth\-first\-search order, each consists of
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The number of untracked entries, variable width encoding\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The number of sub\-directory blocks, variable width encoding\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The directory name terminated by NUL\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A number of untracked file/dir names terminated by NUL\&.
+.RE
+.sp
+The remaining data of each directory block is grouped by type:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah bitmap, the n\-th bit marks whether the n\-th directory has valid untracked cache entries\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah bitmap, the n\-th bit records "check\-only" bit of read_directory_recursive() for the n\-th directory\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah bitmap, the n\-th bit indicates whether hash and stat data is valid for the n\-th directory and exists in the next data\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An array of stat data\&. The n\-th data corresponds with the n\-th "one" bit in the previous ewah bitmap\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An array of hashes\&. The n\-th hash corresponds with the n\-th "one" bit in the previous ewah bitmap\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+One NUL\&.
+.RE
+.SH "FILE SYSTEM MONITOR CACHE"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The file system monitor cache tracks files for which the core\&.fsmonitor
+hook has told us about changes\&. The signature for this extension is
+{ \(aqF\(aq, \(aqS\(aq, \(aqM\(aq, \(aqN\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension starts with
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit version number: the current supported versions are 1 and 2\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+(Version 1) 64\-bit time: the extension data reflects all changes through the given time which is stored as the nanoseconds elapsed since midnight, January 1, 1970\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+(Version 2) A null terminated string: an opaque token defined by the file system monitor application\&. The extension data reflects all changes relative to that token\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit bitmap size: the size of the CE_FSMONITOR_VALID bitmap\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An ewah bitmap, the n\-th bit indicates whether the n\-th index entry is not CE_FSMONITOR_VALID\&.
+.RE
+.SH "END OF INDEX ENTRY"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The End of Index Entry (EOIE) is used to locate the end of the variable
+length index entries and the beginning of the extensions\&. Code can take
+advantage of this to quickly locate the index extensions without having
+to parse through all of the index entries\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Because it must be able to be loaded before the variable length cache
+entries and other index extensions, this extension must be written last\&.
+The signature for this extension is { \(aqE\(aq, \(aqO\(aq, \(aqI\(aq, \(aqE\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension consists of:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit offset to the end of the index entries
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Hash over the extension types and their sizes (but not their contents)\&. E\&.g\&. if we have "TREE" extension that is N\-bytes long, "REUC" extension that is M\-bytes long, followed by "EOIE", then the hash would be:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Hash("TREE" + <binary representation of N> +
+ "REUC" + <binary representation of M>)
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SH "INDEX ENTRY OFFSET TABLE"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The Index Entry Offset Table (IEOT) is used to help address the CPU
+cost of loading the index by enabling multi\-threading the process of
+converting cache entries from the on\-disk format to the in\-memory format\&.
+The signature for this extension is { \(aqI\(aq, \(aqE\(aq, \(aqO\(aq, \(aqT\(aq }\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The extension consists of:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit version (currently 1)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A number of index offset entries each consisting of:
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit offset from the beginning of the file to the first cache entry in this block of entries\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+32\-bit count of cache entries in this block
+.RE
+.SH "SPARSE DIRECTORY ENTRIES"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+When using sparse\-checkout in cone mode, some entire directories within
+the index can be summarized by pointing to a tree object instead of the
+entire expanded list of paths within that tree\&. An index containing such
+entries is a "sparse index"\&. Index format versions 4 and less were not
+implemented with such entries in mind\&. Thus, for these versions, an
+index containing sparse directory entries will include this extension
+with signature { \(aqs\(aq, \(aqd\(aq, \(aqi\(aq, \(aqr\(aq }\&. Like the split\-index extension,
+tools should avoid interacting with a sparse index unless they understand
+this extension\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitformat-pack.5 b/man5/gitformat-pack.5
new file mode 100644
index 000000000..841bfeefc
--- /dev/null
+++ b/man5/gitformat-pack.5
@@ -0,0 +1,1194 @@
+'\" t
+.\" Title: gitformat-pack
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-PACK" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-pack \- Git pack format
+.SH "SYNOPSIS"
+.sp
+.nf
+$GIT_DIR/objects/pack/pack\-\fB\&.{pack,idx}
+$GIT_DIR/objects/pack/pack\-\fR\&.rev
+$GIT_DIR/objects/pack/pack\-*\&.mtimes
+$GIT_DIR/objects/pack/multi\-pack\-index
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+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 \fBgit-gc\fR(1) and \fBgit-pack-objects\fR(1)\&.
+.sp
+The pack format is also used over\-the\-wire, see e\&.g\&. \fBgitprotocol-v2\fR(5), as well as being a part of other container formats in the case of \fBgitformat-bundle\fR(5)\&.
+.SH "CHECKSUMS AND OBJECT IDS"
+.sp
+In a repository using the traditional SHA\-1, pack checksums, index checksums, and object IDs (object names) mentioned below are all computed using SHA\-1\&. Similarly, in SHA\-256 repositories, these values are computed using SHA\-256\&.
+.SH "PACK\-*\&.PACK FILES HAVE THE FOLLOWING FORMAT:"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A header appears at the beginning and consists of the following:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte signature:
+ The signature is: {\(aqP\(aq, \(aqA\(aq, \(aqC\(aq, \(aqK\(aq}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte version number (network byte order):
+ Git currently accepts version number 2 or 3 but
+ generates version 2 only\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte number of objects contained in the pack (network byte order)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Observation: we cannot have more than 4G versions ;\-) and
+more than 4G objects in a pack\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The header is followed by number of object entries, each of which looks like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(undeltified representation)
+n\-byte type and length (3\-bit type, (n\-1)*7+4\-bit length)
+compressed data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(deltified representation)
+n\-byte type and length (3\-bit type, (n\-1)*7+4\-bit length)
+base object name if OBJ_REF_DELTA or a negative relative
+ offset from the delta object\(aqs position in the pack if this
+ is an OBJ_OFS_DELTA object
+compressed delta data
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Observation: length of each object is encoded in a variable
+length format and is not constrained to 32\-bit or anything\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The trailer records a pack checksum of all of the above\&.
+.RE
+.SS "Object types"
+.sp
+Valid object types are:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_COMMIT (1)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_TREE (2)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_BLOB (3)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_TAG (4)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_OFS_DELTA (6)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+OBJ_REF_DELTA (7)
+.RE
+.sp
+Type 5 is reserved for future expansion\&. Type 0 is invalid\&.
+.SS "Size encoding"
+.sp
+This document uses the following "size encoding" of non\-negative integers: From each byte, the seven least significant bits are used to form the resulting integer\&. As long as the most significant bit is 1, this process continues; the byte with MSB 0 provides the last seven bits\&. The seven\-bit chunks are concatenated\&. Later values are more significant\&.
+.sp
+This size encoding should not be confused with the "offset encoding", which is also used in this document\&.
+.SS "Deltified representation"
+.sp
+Conceptually there are only four object types: commit, tree, tag and blob\&. However to save space, an object could be stored as a "delta" of another "base" object\&. These representations are assigned new types ofs\-delta and ref\-delta, which is only valid in a pack file\&.
+.sp
+Both ofs\-delta and ref\-delta store the "delta" to be applied to another object (called \fIbase object\fR) to reconstruct the object\&. The difference between them is, ref\-delta directly encodes base object name\&. If the base object is in the same pack, ofs\-delta encodes the offset of the base object in the pack instead\&.
+.sp
+The base object could also be deltified if it\(cqs in the same pack\&. Ref\-delta can also refer to an object outside the pack (i\&.e\&. the so\-called "thin pack")\&. When stored on disk however, the pack should be self contained to avoid cyclic dependency\&.
+.sp
+The delta data starts with the size of the base object and the size of the object to be reconstructed\&. These sizes are encoded using the size encoding from above\&. The remainder of the delta data is a sequence of instructions to reconstruct the object from the base object\&. If the base object is deltified, it must be converted to canonical form first\&. Each instruction appends more and more data to the target object until it\(cqs complete\&. There are two supported instructions so far: one for copy a byte range from the source object and one for inserting new data embedded in the instruction itself\&.
+.sp
+Each instruction has variable length\&. Instruction type is determined by the seventh bit of the first octet\&. The following diagrams follow the convention in RFC 1951 (Deflate compressed data format)\&.
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBInstruction to copy from base object\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
++\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+
+| 1xxxxxxx | offset1 | offset2 | offset3 | offset4 | size1 | size2 | size3 |
++\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+This is the instruction format to copy a byte range from the source object\&. It encodes the offset to copy from and the number of bytes to copy\&. Offset and size are in little\-endian order\&.
+.sp
+All offset and size bytes are optional\&. This is to reduce the instruction size when encoding small offsets or sizes\&. The first seven bits in the first octet determines which of the next seven octets is present\&. If bit zero is set, offset1 is present\&. If bit one is set offset2 is present and so on\&.
+.sp
+Note that a more compact instruction does not change offset and size encoding\&. For example, if only offset2 is omitted like below, offset3 still contains bits 16\-23\&. It does not become offset2 and contains bits 8\-15 even if it\(cqs right next to offset1\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
++\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+
+| 10000101 | offset1 | offset3 |
++\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+In its most compact form, this instruction only takes up one byte (0x80) with both offset and size omitted, which will have default values zero\&. There is another exception: size zero is automatically converted to 0x10000\&.
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBInstruction to add new data\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
++\-\-\-\-\-\-\-\-\-\-+============+
+| 0xxxxxxx | data |
++\-\-\-\-\-\-\-\-\-\-+============+
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+This is the instruction to construct target object without the base object\&. The following data is appended to the target object\&. The first seven bits of the first octet determines the size of data in bytes\&. The size must be non\-zero\&.
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBReserved instruction\fR
+.RS 4
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
++\-\-\-\-\-\-\-\-\-\-+============
+| 00000000 |
++\-\-\-\-\-\-\-\-\-\-+============
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+This is the instruction reserved for future expansion\&.
+.RE
+.SH "ORIGINAL (VERSION 1) PACK\-*\&.IDX FILES HAVE THE FOLLOWING FORMAT:"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The header consists of 256 4\-byte network byte order integers\&. N\-th entry of this table records the number of objects in the corresponding pack, the first byte of whose object name is less than or equal to N\&. This is called the
+\fIfirst\-level fan\-out\fR
+table\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The header is followed by sorted 24\-byte entries, one entry per object in the pack\&. Each entry is:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte network byte order integer, recording where the
+object is stored in the packfile as the offset from the
+beginning\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+one object name of the appropriate size\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The file is concluded with a trailer:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A copy of the pack checksum at the end of the corresponding
+packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Index checksum of all of the above\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+Pack Idx file:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ \-\- +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+fanout | fanout[0] = 2 (for example) |\-\&.
+table +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ |
+ | fanout[1] | |
+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ |
+ | fanout[2] | |
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
+ | fanout[255] = total objects |\-\-\-\&.
+ \-\- +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | |
+main | offset | | |
+index | object name 00XXXXXXXXXXXXXXXX | | |
+table +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | |
+ | offset | | |
+ | object name 00XXXXXXXXXXXXXXXX | | |
+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+<+ |
+ \&.\-| offset | |
+ | | object name 01XXXXXXXXXXXXXXXX | |
+ | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ |
+ | | offset | |
+ | | object name 01XXXXXXXXXXXXXXXX | |
+ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
+ | | offset | |
+ | | object name FFXXXXXXXXXXXXXXXX | |
+ \-\-| +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+<\-\-+
+trailer | | packfile checksum |
+ | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+ | | idxfile checksum |
+ | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+ \&.\-\-\-\-\-\-\-\&.
+ |
+Pack file entry: <+
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packed object header:
+ 1\-byte size extension bit (MSB)
+ type (next 3 bit)
+ size0 (lower 4\-bit)
+ n\-byte sizeN (as long as MSB is set, each 7\-bit)
+ size0\&.\&.sizeN form 4+7+7+\&.\&.+7 bit integer, size0
+ is the least significant part, and sizeN is the
+ most significant part\&.
+packed object data:
+ If it is not DELTA, then deflated bytes (the size above
+ is the size before compression)\&.
+ If it is REF_DELTA, then
+ base object name (the size above is the
+ size of the delta data that follows)\&.
+ delta data, deflated\&.
+ If it is OFS_DELTA, then
+ n\-byte offset (see below) interpreted as a negative
+ offset from the type\-byte of the header of the
+ ofs\-delta entry (the size above is the size of
+ the delta data that follows)\&.
+ delta data, deflated\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+offset encoding:
+ n bytes with MSB set in all but the last one\&.
+ The offset is then the number constructed by
+ concatenating the lower 7 bit of each byte, and
+ for n >= 2 adding 2^7 + 2^14 + \&.\&.\&. + 2^(7*(n\-1))
+ to the result\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SH "VERSION 2 PACK\-*\&.IDX FILES SUPPORT PACKS LARGER THAN 4 GIB, AND"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+have some other reorganizations\&. They have the format:
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte magic number
+\fI\e377tOc\fR
+which is an unreasonable fanout[0] value\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte version number (= 2)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 256\-entry fan\-out table just like v1\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of sorted object names\&. These are packed together without offset values to reduce the cache footprint of the binary search for a specific object name\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of 4\-byte CRC32 values of the packed object data\&. This is new in v2 so compressed data can be copied directly from pack to pack during repacking without undetected data corruption\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of 4\-byte offset values (in network byte order)\&. These are usually 31\-bit pack file offsets, but large offsets are encoded as an index into the next table with the msbit set\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of 8\-byte offset entries (empty for pack files less than 2 GiB)\&. Pack files are organized with heavily used objects toward the front, so most object references should not need to refer to this table\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The same trailer as a v1 pack file:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+A copy of the pack checksum at the end of
+corresponding packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Index checksum of all of the above\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SH "PACK\-*\&.REV FILES HAVE THE FORMAT:"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte magic number
+\fI0x52494458\fR
+(\fIRIDX\fR)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte version identifier (= 1)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte hash function identifier (= 1 for SHA\-1, 2 for SHA\-256)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of index positions (one per packed object, num_objects in total, each a 4\-byte unsigned integer in network order), sorted by their corresponding offsets in the packfile\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A trailer, containing a:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+checksum of the corresponding packfile, and
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+a checksum of all of the above\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+All 4\-byte numbers are in network order\&.
+.SH "PACK\-*\&.MTIMES FILES HAVE THE FORMAT:"
+.sp
+All 4\-byte numbers are in network byte order\&.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte magic number
+\fI0x4d544d45\fR
+(\fIMTME\fR)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte version identifier (= 1)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A 4\-byte hash function identifier (= 1 for SHA\-1, 2 for SHA\-256)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A table of 4\-byte unsigned integers\&. The ith value is the modification time (mtime) of the ith object in the corresponding pack by lexicographic (index) order\&. The mtimes count standard epoch seconds\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A trailer, containing a checksum of the corresponding packfile, and a checksum of all of the above (each having length according to the specified hash function)\&.
+.RE
+.SH "MULTI\-PACK\-INDEX (MIDX) FILES HAVE THE FOLLOWING FORMAT:"
+.sp
+The multi\-pack\-index files refer to multiple pack\-files and loose objects\&.
+.sp
+In order to allow extensions that add extra data to the MIDX, we organize the body into "chunks" and provide a lookup table at the beginning of the body\&. The header includes certain length values, such as the number of packs, the number of base MIDX files, hash lengths and types\&.
+.sp
+All 4\-byte numbers are in network order\&.
+.sp
+HEADER:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte signature:
+ The signature is: {\(aqM\(aq, \(aqI\(aq, \(aqD\(aq, \(aqX\(aq}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte version number:
+ Git only writes or recognizes version 1\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte Object Id Version
+ We infer the length of object IDs (OIDs) from this value:
+ 1 => SHA\-1
+ 2 => SHA\-256
+ If the hash type does not match the repository\(aqs hash algorithm,
+ the multi\-pack\-index file should be ignored with a warning
+ presented to the user\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte number of "chunks"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1\-byte number of base multi\-pack\-index files:
+ This value is currently always zero\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+4\-byte number of pack files
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+CHUNK LOOKUP:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C + 1) * 12 bytes providing the chunk offsets:
+ First 4 bytes describe chunk id\&. Value 0 is a terminating label\&.
+ Other 8 bytes provide offset in current file for chunk to start\&.
+ (Chunks are provided in file\-order, so you can infer the length
+ using the next chunk position if necessary\&.)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The CHUNK LOOKUP matches the table of contents from
+the chunk\-based file format, see linkgit:gitformat\-chunk[5]\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+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
+otherwise specified\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+CHUNK DATA:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Packfile Names (ID: {\(aqP\(aq, \(aqN\(aq, \(aqA\(aq, \(aqM\(aq})
+ Stores the packfile names as concatenated, null\-terminated strings\&.
+ Packfiles must be listed in lexicographic order for fast lookups by
+ name\&. This is the only chunk not guaranteed to be a multiple of four
+ bytes in length, so should be the last chunk for alignment reasons\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+OID Fanout (ID: {\(aqO\(aq, \(aqI\(aq, \(aqD\(aq, \(aqF\(aq})
+ The ith entry, F[i], stores the number of OIDs with first
+ byte at most i\&. Thus F[255] stores the total
+ number of objects\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+OID Lookup (ID: {\(aqO\(aq, \(aqI\(aq, \(aqD\(aq, \(aqL\(aq})
+ The OIDs for all objects in the MIDX are stored in lexicographic
+ order in this chunk\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Object Offsets (ID: {\(aqO\(aq, \(aqO\(aq, \(aqF\(aq, \(aqF\(aq})
+ Stores two 4\-byte values for every object\&.
+ 1: The pack\-int\-id for the pack storing this object\&.
+ 2: The offset within the pack\&.
+ If all offsets are less than 2^32, then the large offset chunk
+ will not exist and offsets are stored as in IDX v1\&.
+ If there is at least one offset value larger than 2^32\-1, then
+ the large offset chunk must exist, and offsets larger than
+ 2^31\-1 must be stored in it instead\&. If the large offset chunk
+ exists and the 31st bit is on, then removing that bit reveals
+ the row in the large offsets containing the 8\-byte offset of
+ this object\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Optional] Object Large Offsets (ID: {\(aqL\(aq, \(aqO\(aq, \(aqF\(aq, \(aqF\(aq})
+ 8\-byte offsets into large packfiles\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Optional] Bitmap pack order (ID: {\(aqR\(aq, \(aqI\(aq, \(aqD\(aq, \(aqX\(aq})
+ A list of MIDX positions (one per object in the MIDX, num_objects in
+ total, each a 4\-byte unsigned integer in network byte order), sorted
+ according to their relative bitmap/pseudo\-pack positions\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+TRAILER:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+Index checksum of the above contents\&.
+.fi
+.if n \{\
+.RE
+.\}
+.SH "MULTI\-PACK\-INDEX REVERSE INDEXES"
+.sp
+Similar to the pack\-based reverse index, the multi\-pack index can also be used to generate a reverse index\&.
+.sp
+Instead of mapping between offset, pack\-, and index position, this reverse index maps between an object\(cqs position within the MIDX, and that object\(cqs position within a pseudo\-pack that the MIDX describes (i\&.e\&., the ith entry of the multi\-pack reverse index holds the MIDX position of ith object in pseudo\-pack order)\&.
+.sp
+To clarify the difference between these orderings, consider a multi\-pack reachability bitmap (which does not yet exist, but is what we are building towards here)\&. Each bit needs to correspond to an object in the MIDX, and so we need an efficient mapping from bit position to MIDX position\&.
+.sp
+One solution is to let bits occupy the same position in the oid\-sorted index stored by the MIDX\&. But because oids are effectively random, their resulting reachability bitmaps would have no locality, and thus compress poorly\&. (This is the reason that single\-pack bitmaps use the pack ordering, and not the \&.idx ordering, for the same purpose\&.)
+.sp
+So we\(cqd like to define an ordering for the whole MIDX based around pack ordering, which has far better locality (and thus compresses more efficiently)\&. We can think of a pseudo\-pack created by the concatenation of all of the packs in the MIDX\&. E\&.g\&., if we had a MIDX with three packs (a, b, c), with 10, 15, and 20 objects respectively, we can imagine an ordering of the objects like:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+|a,0|a,1|\&.\&.\&.|a,9|b,0|b,1|\&.\&.\&.|b,14|c,0|c,1|\&.\&.\&.|c,19|
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+where the ordering of the packs is defined by the MIDX\(cqs pack list, and then the ordering of objects within each pack is the same as the order in the actual packfile\&.
+.sp
+Given the list of packs and their counts of objects, you can na\(:ively reconstruct that pseudo\-pack ordering (e\&.g\&., the object at position 27 must be (c,1) because packs "a" and "b" consumed 25 of the slots)\&. But there\(cqs a catch\&. Objects may be duplicated between packs, in which case the MIDX only stores one pointer to the object (and thus we\(cqd want only one slot in the bitmap)\&.
+.sp
+Callers could handle duplicates themselves by reading objects in order of their bit\-position, but that\(cqs linear in the number of objects, and much too expensive for ordinary bitmap lookups\&. Building a reverse index solves this, since it is the logical inverse of the index, and that index has already removed duplicates\&. But, building a reverse index on the fly can be expensive\&. Since we already have an on\-disk format for pack\-based reverse indexes, let\(cqs reuse it for the MIDX\(cqs pseudo\-pack, too\&.
+.sp
+Objects from the MIDX are ordered as follows to string together the pseudo\-pack\&. Let \fBpack(o)\fR return the pack from which \fBo\fR was selected by the MIDX, and define an ordering of packs based on their numeric ID (as stored by the MIDX)\&. Let \fBoffset(o)\fR return the object offset of \fBo\fR within \fBpack(o)\fR\&. Then, compare \fBo1\fR and \fBo2\fR as follows:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+If one of
+\fBpack(o1)\fR
+and
+\fBpack(o2)\fR
+is preferred and the other is not, then the preferred one sorts first\&.
+.sp
+(This is a detail that allows the MIDX bitmap to determine which pack should be used by the pack\-reuse mechanism, since it can ask the MIDX for the pack containing the object at bit position 0)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+If
+\fBpack(o1) \(!= pack(o2)\fR, then sort the two objects in descending order based on the pack ID\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Otherwise,
+\fBpack(o1) = pack(o2)\fR, and the objects are sorted in pack\-order (i\&.e\&.,
+\fBo1\fR
+sorts ahead of
+\fBo2\fR
+exactly when
+\fBoffset(o1) < offset(o2)\fR)\&.
+.RE
+.sp
+In short, a MIDX\(cqs pseudo\-pack is the de\-duplicated concatenation of objects in packs stored by the MIDX, laid out in pack order, and the packs arranged in MIDX order (with the preferred pack coming first)\&.
+.sp
+The MIDX\(cqs reverse index is stored in the optional \fIRIDX\fR chunk within the MIDX itself\&.
+.SH "CRUFT PACKS"
+.sp
+The cruft packs feature offer an alternative to Git\(cqs traditional mechanism of removing unreachable objects\&. This document provides an overview of Git\(cqs pruning mechanism, and how a cruft pack can be used instead to accomplish the same\&.
+.SS "Background"
+.sp
+To remove unreachable objects from your repository, Git offers \fBgit repack \-Ad\fR (see \fBgit-repack\fR(1))\&. Quoting from the documentation:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[\&.\&.\&.] unreachable objects in a previous pack become loose, unpacked objects,
+instead of being left in the old pack\&. [\&.\&.\&.] loose unreachable objects will be
+pruned according to normal expiry rules with the next \(aqgit gc\(aq invocation\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Unreachable objects aren\(cqt removed immediately, since doing so could race with an incoming push which may reference an object which is about to be deleted\&. Instead, those unreachable objects are stored as loose objects and stay that way until they are older than the expiration window, at which point they are removed by \fBgit-prune\fR(1)\&.
+.sp
+Git must store these unreachable objects loose in order to keep track of their per\-object mtimes\&. If these unreachable objects were written into one big pack, then either freshening that pack (because an object contained within it was re\-written) or creating a new pack of unreachable objects would cause the pack\(cqs mtime to get updated, and the objects within it would never leave the expiration window\&. Instead, objects are stored loose in order to keep track of the individual object mtimes and avoid a situation where all cruft objects are freshened at once\&.
+.sp
+This can lead to undesirable situations when a repository contains many unreachable objects which have not yet left the grace period\&. Having large directories in the shards of \fB\&.git/objects\fR can lead to decreased performance in the repository\&. But given enough unreachable objects, this can lead to inode starvation and degrade the performance of the whole system\&. Since we can never pack those objects, these repositories often take up a large amount of disk space, since we can only zlib compress them, but not store them in delta chains\&.
+.SS "Cruft packs"
+.sp
+A cruft pack eliminates the need for storing unreachable objects in a loose state by including the per\-object mtimes in a separate file alongside a single pack containing all loose objects\&.
+.sp
+A cruft pack is written by \fBgit repack \-\-cruft\fR when generating a new pack\&. \fBgit-pack-objects\fR(1)\(aqs \fB\-\-cruft\fR option\&. Note that \fBgit repack \-\-cruft\fR is a classic all\-into\-one repack, meaning that everything in the resulting pack is reachable, and everything else is unreachable\&. Once written, the \fB\-\-cruft\fR option instructs \fBgit repack\fR to generate another pack containing only objects not packed in the previous step (which equates to packing all unreachable objects together)\&. This progresses as follows:
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 1." 4.2
+.\}
+Enumerate every object, marking any object which is (a) not contained in a kept\-pack, and (b) whose mtime is within the grace period as a traversal tip\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 2." 4.2
+.\}
+Perform a reachability traversal based on the tips gathered in the previous step, adding every object along the way to the pack\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 3." 4.2
+.\}
+Write the pack out, along with a
+\fB\&.mtimes\fR
+file that records the per\-object timestamps\&.
+.RE
+.sp
+This mode is invoked internally by \fBgit-repack\fR(1) when instructed to write a cruft pack\&. Crucially, the set of in\-core kept packs is exactly the set of packs which will not be deleted by the repack; in other words, they contain all of the repository\(cqs reachable objects\&.
+.sp
+When a repository already has a cruft pack, \fBgit repack \-\-cruft\fR typically only adds objects to it\&. An exception to this is when \fBgit repack\fR is given the \fB\-\-cruft\-expiration\fR option, which allows the generated cruft pack to omit expired objects instead of waiting for \fBgit-gc\fR(1) to expire those objects later on\&.
+.sp
+It is \fBgit-gc\fR(1) that is typically responsible for removing expired unreachable objects\&.
+.SS "Caution for mixed\-version environments"
+.sp
+Repositories that have cruft packs in them will continue to work with any older version of Git\&. Note, however, that previous versions of Git which do not understand the \fB\&.mtimes\fR file will use the cruft pack\(cqs mtime as the mtime for all of the objects in it\&. In other words, do not expect older (pre\-cruft pack) versions of Git to interpret or even read the contents of the \fB\&.mtimes\fR file\&.
+.sp
+Note that having mixed versions of Git GC\-ing the same repository can lead to unreachable objects never being completely pruned\&. This can happen under the following circumstances:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+An older version of Git running GC explodes the contents of an existing cruft pack loose, using the cruft pack\(cqs mtime\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A newer version running GC collects those loose objects into a cruft pack, where the \&.mtime file reflects the loose object\(cqs actual mtimes, but the cruft pack mtime is "now"\&.
+.RE
+.sp
+Repeating this process will lead to unreachable objects not getting pruned as a result of repeatedly resetting the objects\(aq mtimes to the present time\&.
+.sp
+If you are GC\-ing repositories in a mixed version environment, consider omitting the \fB\-\-cruft\fR option when using \fBgit-repack\fR(1) and \fBgit-gc\fR(1), and leaving the \fBgc\&.cruftPacks\fR configuration unset until all writers understand cruft packs\&.
+.SS "Alternatives"
+.sp
+Notable alternatives to this design include:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The location of the per\-object mtime data, and
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Storing unreachable objects in multiple cruft packs\&.
+.RE
+.sp
+On the location of mtime data, a new auxiliary file tied to the pack was chosen to avoid complicating the \fB\&.idx\fR format\&. If the \fB\&.idx\fR format were ever to gain support for optional chunks of data, it may make sense to consolidate the \fB\&.mtimes\fR format into the \fB\&.idx\fR itself\&.
+.sp
+Storing unreachable objects among multiple cruft packs (e\&.g\&., creating a new cruft pack during each repacking operation including only unreachable objects which aren\(cqt already stored in an earlier cruft pack) is significantly more complicated to construct, and so aren\(cqt pursued here\&. The obvious drawback to the current implementation is that the entire cruft pack must be re\-written from scratch\&.
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitformat-signature.5 b/man5/gitformat-signature.5
new file mode 100644
index 000000000..142b7ae4f
--- /dev/null
+++ b/man5/gitformat-signature.5
@@ -0,0 +1,414 @@
+'\" t
+.\" Title: gitformat-signature
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITFORMAT\-SIGNATURE" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitformat-signature \- Git cryptographic signature formats
+.SH "SYNOPSIS"
+.sp
+.nf
+<[tag|commit] object header(s)>
+<over\-the\-wire protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+Git uses cryptographic signatures in various places, currently objects (tags, commits, mergetags) and transactions (pushes)\&. In every case, the command which is about to create an object or transaction determines a payload from that, calls gpg to obtain a detached signature for the payload (\fBgpg \-bsa\fR) and embeds the signature into the object or transaction\&.
+.sp
+Signatures always begin with \fB\-\-\-\-\-BEGIN PGP SIGNATURE\-\-\-\-\-\fR and end with \fB\-\-\-\-\-END PGP SIGNATURE\-\-\-\-\-\fR, unless gpg is told to produce RFC1991 signatures which use \fBMESSAGE\fR instead of \fBSIGNATURE\fR\&.
+.sp
+Signatures sometimes appear as a part of the normal payload (e\&.g\&. a signed tag has the signature block appended after the payload that the signature applies to), and sometimes appear in the value of an object header (e\&.g\&. a merge commit that merged a signed tag would have the entire tag contents on its "mergetag" header)\&. In the case of the latter, the usual multi\-line formatting rule for object headers applies\&. I\&.e\&. the second and subsequent lines are prefixed with a SP to signal that the line is continued from the previous line\&.
+.sp
+This is even true for an originally empty line\&. In the following examples, the end of line that ends with a whitespace letter is highlighted with a \fB$\fR sign; if you are trying to recreate these example by hand, do not cut and paste them\-\-\-they are there primarily to highlight extra whitespace at the end of some lines\&.
+.sp
+The signed payload and the way the signature is embedded depends on the type of the object resp\&. transaction\&.
+.SH "TAG SIGNATURES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+created by:
+\fBgit tag \-s\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+payload: annotated tag object
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+embedding: append the signature to the unsigned tag object
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+example: tag
+\fBsignedtag\fR
+with subject
+\fBsigned tag\fR
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+object 04b871796dc0420f8e7561a895b52484b701d51a
+type commit
+tag signedtag
+tagger C O Mitter <committer@example\&.com> 1465981006 +0000
+
+signed tag
+
+signed tag message body
+\-\-\-\-\-BEGIN PGP SIGNATURE\-\-\-\-\-
+Version: GnuPG v1
+
+iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
+rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
+8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
+q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
+rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
+lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
+=jpXa
+\-\-\-\-\-END PGP SIGNATURE\-\-\-\-\-
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+verify with:
+\fBgit verify\-tag [\-v]\fR
+or
+\fBgit tag \-v\fR
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
+gpg: Good signature from "Eris Discordia <discord@example\&.net>"
+gpg: WARNING: This key is not certified with a trusted signature!
+gpg: There is no indication that the signature belongs to the owner\&.
+Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA 29A4 6109 2E85 B722 7189
+object 04b871796dc0420f8e7561a895b52484b701d51a
+type commit
+tag signedtag
+tagger C O Mitter <committer@example\&.com> 1465981006 +0000
+
+signed tag
+
+signed tag message body
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "COMMIT SIGNATURES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+created by:
+\fBgit commit \-S\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+payload: commit object
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+embedding: header entry
+\fBgpgsig\fR
+(content is preceded by a space)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+example: commit with subject
+\fBsigned commit\fR
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+tree eebfed94e75e7760540d1485c740902590a00332
+parent 04b871796dc0420f8e7561a895b52484b701d51a
+author A U Thor <author@example\&.com> 1465981137 +0000
+committer C O Mitter <committer@example\&.com> 1465981137 +0000
+gpgsig \-\-\-\-\-BEGIN PGP SIGNATURE\-\-\-\-\-
+ Version: GnuPG v1
+ $
+ iQEcBAABAgAGBQJXYRjRAAoJEGEJLoW3InGJ3IwIAIY4SA6GxY3BjL60YyvsJPh/
+ HRCJwH+w7wt3Yc/9/bW2F+gF72kdHOOs2jfv+OZhq0q4OAN6fvVSczISY/82LpS7
+ DVdMQj2/YcHDT4xrDNBnXnviDO9G7am/9OE77kEbXrp7QPxvhjkicHNwy2rEflAA
+ zn075rtEERDHr8nRYiDh8eVrefSO7D+bdQ7gv+7GsYMsd2auJWi1dHOSfTr9HIF4
+ HJhWXT9d2f8W+diRYXGh4X0wYiGg6na/soXc+vdtDYBzIxanRqjg8jCAeo1eOTk1
+ EdTwhcTZlI0x5pvJ3H0+4hA2jtldVtmPM4OTB0cTrEWBad7XV6YgiyuII73Ve3I=
+ =jKHM
+ \-\-\-\-\-END PGP SIGNATURE\-\-\-\-\-
+
+signed commit
+
+signed commit message body
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+verify with:
+\fBgit verify\-commit [\-v]\fR
+(or
+\fBgit show \-\-show\-signature\fR)
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+gpg: Signature made Wed Jun 15 10:58:57 2016 CEST using RSA key ID B7227189
+gpg: Good signature from "Eris Discordia <discord@example\&.net>"
+gpg: WARNING: This key is not certified with a trusted signature!
+gpg: There is no indication that the signature belongs to the owner\&.
+Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA 29A4 6109 2E85 B722 7189
+tree eebfed94e75e7760540d1485c740902590a00332
+parent 04b871796dc0420f8e7561a895b52484b701d51a
+author A U Thor <author@example\&.com> 1465981137 +0000
+committer C O Mitter <committer@example\&.com> 1465981137 +0000
+
+signed commit
+
+signed commit message body
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "MERGETAG SIGNATURES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+created by:
+\fBgit merge\fR
+on signed tag
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+payload/embedding: the whole signed tag object is embedded into the (merge) commit object as header entry
+\fBmergetag\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+example: merge of the signed tag
+\fBsignedtag\fR
+as above
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+tree c7b1cff039a93f3600a1d18b82d26688668c7dea
+parent c33429be94b5f2d3ee9b0adad223f877f174b05d
+parent 04b871796dc0420f8e7561a895b52484b701d51a
+author A U Thor <author@example\&.com> 1465982009 +0000
+committer C O Mitter <committer@example\&.com> 1465982009 +0000
+mergetag object 04b871796dc0420f8e7561a895b52484b701d51a
+ type commit
+ tag signedtag
+ tagger C O Mitter <committer@example\&.com> 1465981006 +0000
+ $
+ signed tag
+ $
+ signed tag message body
+ \-\-\-\-\-BEGIN PGP SIGNATURE\-\-\-\-\-
+ Version: GnuPG v1
+ $
+ iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
+ rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
+ 8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
+ q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
+ rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
+ lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
+ =jpXa
+ \-\-\-\-\-END PGP SIGNATURE\-\-\-\-\-
+
+Merge tag \(aqsignedtag\(aq into downstream
+
+signed tag
+
+signed tag message body
+
+# gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
+# gpg: Good signature from "Eris Discordia <discord@example\&.net>"
+# gpg: WARNING: This key is not certified with a trusted signature!
+# gpg: There is no indication that the signature belongs to the owner\&.
+# Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA 29A4 6109 2E85 B722 7189
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+verify with: verification is embedded in merge commit message by default, alternatively with
+\fBgit show \-\-show\-signature\fR:
+.RE
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+commit 9863f0c76ff78712b6800e199a46aa56afbcbd49
+merged tag \(aqsignedtag\(aq
+gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
+gpg: Good signature from "Eris Discordia <discord@example\&.net>"
+gpg: WARNING: This key is not certified with a trusted signature!
+gpg: There is no indication that the signature belongs to the owner\&.
+Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA 29A4 6109 2E85 B722 7189
+Merge: c33429b 04b8717
+Author: A U Thor <author@example\&.com>
+Date: Wed Jun 15 09:13:29 2016 +0000
+
+ Merge tag \(aqsignedtag\(aq into downstream
+
+ signed tag
+
+ signed tag message body
+
+ # gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
+ # gpg: Good signature from "Eris Discordia <discord@example\&.net>"
+ # gpg: WARNING: This key is not certified with a trusted signature!
+ # gpg: There is no indication that the signature belongs to the owner\&.
+ # Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA 29A4 6109 2E85 B722 7189
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/githooks.5 b/man5/githooks.5
index 9682c6052..65a54ce2b 100644
--- a/man5/githooks.5
+++ b/man5/githooks.5
@@ -2,12 +2,12 @@
.\" Title: githooks
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITHOOKS" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITHOOKS" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitignore.5 b/man5/gitignore.5
index 1acf259ef..4fb57d14f 100644
--- a/man5/gitignore.5
+++ b/man5/gitignore.5
@@ -2,12 +2,12 @@
.\" Title: gitignore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITIGNORE" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITIGNORE" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitmailmap.5 b/man5/gitmailmap.5
index 4028286e2..953b232b4 100644
--- a/man5/gitmailmap.5
+++ b/man5/gitmailmap.5
@@ -2,12 +2,12 @@
.\" Title: gitmailmap
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITMAILMAP" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITMAILMAP" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitmodules.5 b/man5/gitmodules.5
index 0955b3fde..fd1d44f23 100644
--- a/man5/gitmodules.5
+++ b/man5/gitmodules.5
@@ -2,12 +2,12 @@
.\" Title: gitmodules
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITMODULES" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITMODULES" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitprotocol-capabilities.5 b/man5/gitprotocol-capabilities.5
new file mode 100644
index 000000000..d8a657615
--- /dev/null
+++ b/man5/gitprotocol-capabilities.5
@@ -0,0 +1,230 @@
+'\" t
+.\" Title: gitprotocol-capabilities
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITPROTOCOL\-CAPABIL" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitprotocol-capabilities \- Protocol v0 and v1 capabilities
+.SH "SYNOPSIS"
+.sp
+.nf
+<over\-the\-wire\-protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBNote\fR
+.ps -1
+.br
+.sp
+this document describes capabilities for versions 0 and 1 of the pack protocol\&. For version 2, please refer to the \fBgitprotocol-v2\fR(5) doc\&.
+.sp .5v
+.RE
+.sp
+Servers SHOULD support all capabilities defined in this document\&.
+.sp
+On the very first line of the initial server response of either receive\-pack and upload\-pack the first reference is followed by a NUL byte and then a list of space delimited server capabilities\&. These allow the server to declare what it can and cannot support to the client\&.
+.sp
+Client will then send a space separated list of capabilities it wants to be in effect\&. The client MUST NOT ask for capabilities the server did not say it supports\&.
+.sp
+Server MUST diagnose and abort if capabilities it does not understand was sent\&. Server MUST NOT ignore capabilities that client requested and server advertised\&. As a consequence of these rules, server MUST NOT advertise capabilities it does not understand\&.
+.sp
+The \fIatomic\fR, \fIreport\-status\fR, \fIreport\-status\-v2\fR, \fIdelete\-refs\fR, \fIquiet\fR, and \fIpush\-cert\fR capabilities are sent and recognized by the receive\-pack (push to server) process\&.
+.sp
+The \fIofs\-delta\fR and \fIside\-band\-64k\fR capabilities are sent and recognized by both upload\-pack and receive\-pack protocols\&. The \fIagent\fR and \fIsession\-id\fR capabilities may optionally be sent in both protocols\&.
+.sp
+All other capabilities are only recognized by the upload\-pack (fetch from server) process\&.
+.SH "MULTI_ACK"
+.sp
+The \fImulti_ack\fR capability allows the server to return "ACK obj\-id continue" as soon as it finds a commit that it can use as a common base, between the client\(cqs wants and the client\(cqs have set\&.
+.sp
+By sending this early, the server can potentially head off the client from walking any further down that particular branch of the client\(cqs repository history\&. The client may still need to walk down other branches, sending have lines for those, until the server has a complete cut across the DAG, or the client has said "done"\&.
+.sp
+Without multi_ack, a client sends have lines in \-\-date\-order until the server has found a common base\&. That means the client will send have lines that are already known by the server to be common, because they overlap in time with another branch that the server hasn\(cqt found a common base on yet\&.
+.sp
+For example suppose the client has commits in caps that the server doesn\(cqt and the server has commits in lower case that the client doesn\(cqt, as in the following diagram:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ +\-\-\-\- u \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- x
+ / +\-\-\-\-\- y
+ / /
+a \-\- b \-\- c \-\- d \-\- E \-\- F
+ \e
+ +\-\-\- Q \-\- R \-\- S
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the client wants x,y and starts out by saying have F,S, the server doesn\(cqt know what F,S is\&. Eventually the client says "have d" and the server sends "ACK d continue" to let the client know to stop walking down that line (so don\(cqt send c\-b\-a), but it\(cqs not done yet, it needs a base for x\&. The client keeps going with S\-R\-Q, until a gets reached, at which point the server has a clear base and it all ends\&.
+.sp
+Without multi_ack the client would have sent that c\-b\-a chain anyway, interleaved with S\-R\-Q\&.
+.SH "MULTI_ACK_DETAILED"
+.sp
+This is an extension of multi_ack that permits client to better understand the server\(cqs in\-memory state\&. See \fBgitprotocol-pack\fR(5), section "Packfile Negotiation" for more information\&.
+.SH "NO\-DONE"
+.sp
+This capability should only be used with the smart HTTP protocol\&. If multi_ack_detailed and no\-done are both present, then the sender is free to immediately send a pack following its first "ACK obj\-id ready" message\&.
+.sp
+Without no\-done in the smart HTTP protocol, the server session would end and the client has to make another trip to send "done" before the server can send the pack\&. no\-done removes the last round and thus slightly reduces latency\&.
+.SH "THIN\-PACK"
+.sp
+A thin pack is one with deltas which reference base objects not contained within the pack (but are known to exist at the receiving end)\&. This can reduce the network traffic significantly, but it requires the receiving end to know how to "thicken" these packs by adding the missing bases to the pack\&.
+.sp
+The upload\-pack server advertises \fIthin\-pack\fR when it can generate and send a thin pack\&. A client requests the \fIthin\-pack\fR capability when it understands how to "thicken" it, notifying the server that it can receive such a pack\&. A client MUST NOT request the \fIthin\-pack\fR capability if it cannot turn a thin pack into a self\-contained pack\&.
+.sp
+Receive\-pack, on the other hand, is assumed by default to be able to handle thin packs, but can ask the client not to use the feature by advertising the \fIno\-thin\fR capability\&. A client MUST NOT send a thin pack if the server advertises the \fIno\-thin\fR capability\&.
+.sp
+The reasons for this asymmetry are historical\&. The receive\-pack program did not exist until after the invention of thin packs, so historically the reference implementation of receive\-pack always understood thin packs\&. Adding \fIno\-thin\fR later allowed receive\-pack to disable the feature in a backwards\-compatible manner\&.
+.SH "SIDE\-BAND, SIDE\-BAND\-64K"
+.sp
+This capability means that server can send, and client understand multiplexed progress reports and error info interleaved with the packfile itself\&.
+.sp
+These two options are mutually exclusive\&. A modern client always favors \fIside\-band\-64k\fR\&.
+.sp
+Either mode indicates that the packfile data will be streamed broken up into packets of up to either 1000 bytes in the case of \fIside_band\fR, or 65520 bytes in the case of \fIside_band_64k\fR\&. Each packet is made up of a leading 4\-byte pkt\-line length of how much data is in the packet, followed by a 1\-byte stream code, followed by the actual data\&.
+.sp
+The stream code can be one of:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+1 \- pack data
+2 \- progress messages
+3 \- fatal error message just before stream aborts
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The "side\-band\-64k" capability came about as a way for newer clients that can handle much larger packets to request packets that are actually crammed nearly full, while maintaining backward compatibility for the older clients\&.
+.sp
+Further, with side\-band and its up to 1000\-byte messages, it\(cqs actually 999 bytes of payload and 1 byte for the stream code\&. With side\-band\-64k, same deal, you have up to 65519 bytes of data and 1 byte for the stream code\&.
+.sp
+The client MUST send only maximum of one of "side\-band" and "side\- band\-64k"\&. Server MUST diagnose it as an error if client requests both\&.
+.SH "OFS\-DELTA"
+.sp
+Server can send, and client understand PACKv2 with delta referring to its base by position in pack rather than by an obj\-id\&. That is, they can send/read OBJ_OFS_DELTA (aka type 6) in a packfile\&.
+.SH "AGENT"
+.sp
+The server may optionally send a capability of the form \fBagent=X\fR to notify the client that the server is running version \fBX\fR\&. The client may optionally return its own agent string by responding with an \fBagent=Y\fR capability (but it MUST NOT do so if the server did not mention the agent capability)\&. The \fBX\fR and \fBY\fR strings may contain any printable ASCII characters except space (i\&.e\&., the byte range 32 < x < 127), and are typically of the form "package/version" (e\&.g\&., "git/1\&.8\&.3\&.1")\&. The agent strings are purely informative for statistics and debugging purposes, and MUST NOT be used to programmatically assume the presence or absence of particular features\&.
+.SH "OBJECT\-FORMAT"
+.sp
+This capability, which takes a hash algorithm as an argument, indicates that the server supports the given hash algorithms\&. It may be sent multiple times; if so, the first one given is the one used in the ref advertisement\&.
+.sp
+When provided by the client, this indicates that it intends to use the given hash algorithm to communicate\&. The algorithm provided must be one that the server supports\&.
+.sp
+If this capability is not provided, it is assumed that the only supported algorithm is SHA\-1\&.
+.SH "SYMREF"
+.sp
+This parameterized capability is used to inform the receiver which symbolic ref points to which ref; for example, "symref=HEAD:refs/heads/master" tells the receiver that HEAD points to master\&. This capability can be repeated to represent multiple symrefs\&.
+.sp
+Servers SHOULD include this capability for the HEAD symref if it is one of the refs being sent\&.
+.sp
+Clients MAY use the parameters from this capability to select the proper initial branch when cloning a repository\&.
+.SH "SHALLOW"
+.sp
+This capability adds "deepen", "shallow" and "unshallow" commands to the fetch\-pack/upload\-pack protocol so clients can request shallow clones\&.
+.SH "DEEPEN\-SINCE"
+.sp
+This capability adds "deepen\-since" command to fetch\-pack/upload\-pack protocol so the client can request shallow clones that are cut at a specific time, instead of depth\&. Internally it\(cqs equivalent of doing "rev\-list \-\-max\-age=<timestamp>" on the server side\&. "deepen\-since" cannot be used with "deepen"\&.
+.SH "DEEPEN\-NOT"
+.sp
+This capability adds "deepen\-not" command to fetch\-pack/upload\-pack protocol so the client can request shallow clones that are cut at a specific revision, instead of depth\&. Internally it\(cqs equivalent of doing "rev\-list \-\-not <rev>" on the server side\&. "deepen\-not" cannot be used with "deepen", but can be used with "deepen\-since"\&.
+.SH "DEEPEN\-RELATIVE"
+.sp
+If this capability is requested by the client, the semantics of "deepen" command is changed\&. The "depth" argument is the depth from the current shallow boundary, instead of the depth from remote refs\&.
+.SH "NO\-PROGRESS"
+.sp
+The client was started with "git clone \-q" or something, and doesn\(cqt want that side band 2\&. Basically the client just says "I do not wish to receive stream 2 on sideband, so do not send it to me, and if you did, I will drop it on the floor anyway"\&. However, the sideband channel 3 is still used for error responses\&.
+.SH "INCLUDE\-TAG"
+.sp
+The \fIinclude\-tag\fR capability is about sending annotated tags if we are sending objects they point to\&. If we pack an object to the client, and a tag object points exactly at that object, we pack the tag object too\&. In general this allows a client to get all new annotated tags when it fetches a branch, in a single network connection\&.
+.sp
+Clients MAY always send include\-tag, hardcoding it into a request when the server advertises this capability\&. The decision for a client to request include\-tag only has to do with the client\(cqs desires for tag data, whether or not a server had advertised objects in the refs/tags/* namespace\&.
+.sp
+Servers MUST pack the tags if their referrant is packed and the client has requested include\-tags\&.
+.sp
+Clients MUST be prepared for the case where a server has ignored include\-tag and has not actually sent tags in the pack\&. In such cases the client SHOULD issue a subsequent fetch to acquire the tags that include\-tag would have otherwise given the client\&.
+.sp
+The server SHOULD send include\-tag, if it supports it, regardless of whether or not there are tags available\&.
+.SH "REPORT\-STATUS"
+.sp
+The receive\-pack process can receive a \fIreport\-status\fR capability, which tells it that the client wants a report of what happened after a packfile upload and reference update\&. If the pushing client requests this capability, after unpacking and updating references the server will respond with whether the packfile unpacked successfully and if each reference was updated successfully\&. If any of those were not successful, it will send back an error message\&. See \fBgitprotocol-pack\fR(5) for example messages\&.
+.SH "REPORT\-STATUS\-V2"
+.sp
+Capability \fIreport\-status\-v2\fR extends capability \fIreport\-status\fR by adding new "option" directives in order to support reference rewritten by the "proc\-receive" hook\&. The "proc\-receive" hook may handle a command for a pseudo\-reference which may create or update a reference with different name, new\-oid, and old\-oid\&. While the capability \fIreport\-status\fR cannot report for such case\&. See \fBgitprotocol-pack\fR(5) for details\&.
+.SH "DELETE\-REFS"
+.sp
+If the server sends back the \fIdelete\-refs\fR capability, it means that it is capable of accepting a zero\-id value as the target value of a reference update\&. It is not sent back by the client, it simply informs the client that it can be sent zero\-id values to delete references\&.
+.SH "QUIET"
+.sp
+If the receive\-pack server advertises the \fIquiet\fR capability, it is capable of silencing human\-readable progress output which otherwise may be shown when processing the received pack\&. A send\-pack client should respond with the \fIquiet\fR capability to suppress server\-side progress reporting if the local progress reporting is also being suppressed (e\&.g\&., via \fBpush \-q\fR, or if stderr does not go to a tty)\&.
+.SH "ATOMIC"
+.sp
+If the server sends the \fIatomic\fR capability it is capable of accepting atomic pushes\&. If the pushing client requests this capability, the server will update the refs in one atomic transaction\&. Either all refs are updated or none\&.
+.SH "PUSH\-OPTIONS"
+.sp
+If the server sends the \fIpush\-options\fR capability it is able to accept push options after the update commands have been sent, but before the packfile is streamed\&. If the pushing client requests this capability, the server will pass the options to the pre\- and post\- receive hooks that process this push request\&.
+.SH "ALLOW\-TIP\-SHA1\-IN\-WANT"
+.sp
+If the upload\-pack server advertises this capability, fetch\-pack may send "want" lines with object names that exist at the server but are not advertised by upload\-pack\&. For historical reasons, the name of this capability contains "sha1"\&. Object names are always given using the object format negotiated through the \fIobject\-format\fR capability\&.
+.SH "ALLOW\-REACHABLE\-SHA1\-IN\-WANT"
+.sp
+If the upload\-pack server advertises this capability, fetch\-pack may send "want" lines with object names that exist at the server but are not advertised by upload\-pack\&. For historical reasons, the name of this capability contains "sha1"\&. Object names are always given using the object format negotiated through the \fIobject\-format\fR capability\&.
+.SH "PUSH\-CERT=<NONCE>"
+.sp
+The receive\-pack server that advertises this capability is willing to accept a signed push certificate, and asks the <nonce> to be included in the push certificate\&. A send\-pack client MUST NOT send a push\-cert packet unless the receive\-pack server advertises this capability\&.
+.SH "FILTER"
+.sp
+If the upload\-pack server advertises the \fIfilter\fR capability, fetch\-pack may send "filter" commands to request a partial clone or partial fetch and request that the server omit various objects from the packfile\&.
+.SH "SESSION\-ID=<SESSION ID>"
+.sp
+The server may advertise a session ID that can be used to identify this process across multiple requests\&. The client may advertise its own session ID back to the server as well\&.
+.sp
+Session IDs should be unique to a given process\&. They must fit within a packet\-line, and must not contain non\-printable or whitespace characters\&. The current implementation uses trace2 session IDs (see \m[blue]\fBapi\-trace2\fR\m[]\&\s-2\u[1]\d\s+2 for details), but this may change and users of the session ID should not rely on this fact\&.
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
+.SH "NOTES"
+.IP " 1." 4
+api-trace2
+.RS 4
+\%git-htmldocs/api-trace2.html
+.RE
diff --git a/man5/gitprotocol-common.5 b/man5/gitprotocol-common.5
new file mode 100644
index 000000000..2a4f38d87
--- /dev/null
+++ b/man5/gitprotocol-common.5
@@ -0,0 +1,238 @@
+'\" t
+.\" Title: gitprotocol-common
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITPROTOCOL\-COMMON" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitprotocol-common \- Things common to various protocols
+.SH "SYNOPSIS"
+.sp
+.nf
+<over\-the\-wire\-protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+This document sets defines things common to various over\-the\-wire protocols and file formats used in Git\&.
+.SH "ABNF NOTATION"
+.sp
+ABNF notation as described by RFC 5234 is used within the protocol documents, except the following replacement core rules are used:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ HEXDIG = DIGIT / "a" / "b" / "c" / "d" / "e" / "f"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+We also define the following common rules:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ NUL = %x00
+ zero\-id = 40*"0"
+ obj\-id = 40*(HEXDIGIT)
+
+ refname = "HEAD"
+ refname /= "refs/" <see discussion below>
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+A refname is a hierarchical octet string beginning with "refs/" and not violating the \fIgit\-check\-ref\-format\fR command\(cqs validation rules\&. More specifically, they:
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 1." 4.2
+.\}
+They can include slash
+\fB/\fR
+for hierarchical (directory) grouping, but no slash\-separated component can begin with a dot
+\fB\&.\fR\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 2." 4.2
+.\}
+They must contain at least one
+\fB/\fR\&. This enforces the presence of a category like
+\fBheads/\fR,
+\fBtags/\fR
+etc\&. but the actual names are not restricted\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 3." 4.2
+.\}
+They cannot have two consecutive dots
+\fB\&.\&.\fR
+anywhere\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 4.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 4." 4.2
+.\}
+They cannot have ASCII control characters (i\&.e\&. bytes whose values are lower than \e040, or \e177
+\fBDEL\fR), space, tilde
+\fB~\fR, caret
+\fB^\fR, colon
+\fB:\fR, question\-mark
+\fB?\fR, asterisk
+\fB*\fR, or open bracket
+\fB[\fR
+anywhere\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 5.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 5." 4.2
+.\}
+They cannot end with a slash
+\fB/\fR
+or a dot
+\fB\&.\fR\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 6.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 6." 4.2
+.\}
+They cannot end with the sequence
+\fB\&.lock\fR\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 7.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 7." 4.2
+.\}
+They cannot contain a sequence
+\fB@{\fR\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 8.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 8." 4.2
+.\}
+They cannot contain a
+\fB\e\e\fR\&.
+.RE
+.SH "PKT\-LINE FORMAT"
+.sp
+Much (but not all) of the payload is described around pkt\-lines\&.
+.sp
+A pkt\-line is a variable length binary string\&. The first four bytes of the line, the pkt\-len, indicates the total length of the line, in hexadecimal\&. The pkt\-len includes the 4 bytes used to contain the length\(cqs hexadecimal representation\&.
+.sp
+A pkt\-line MAY contain binary data, so implementors MUST ensure pkt\-line parsing/formatting routines are 8\-bit clean\&.
+.sp
+A non\-binary line SHOULD BE terminated by an LF, which if present MUST be included in the total length\&. Receivers MUST treat pkt\-lines with non\-binary data the same whether or not they contain the trailing LF (stripping the LF if present, and not complaining when it is missing)\&.
+.sp
+The maximum length of a pkt\-line\(cqs data component is 65516 bytes\&. Implementations MUST NOT send pkt\-line whose length exceeds 65520 (65516 bytes of payload + 4 bytes of length data)\&.
+.sp
+Implementations SHOULD NOT send an empty pkt\-line ("0004")\&.
+.sp
+A pkt\-line with a length field of 0 ("0000"), called a flush\-pkt, is a special case and MUST be handled differently than an empty pkt\-line ("0004")\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ pkt\-line = data\-pkt / flush\-pkt
+
+ data\-pkt = pkt\-len pkt\-payload
+ pkt\-len = 4*(HEXDIG)
+ pkt\-payload = (pkt\-len \- 4)*(OCTET)
+
+ flush\-pkt = "0000"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Examples (as C\-style strings):
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ pkt\-line actual value
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ "0006a\en" "a\en"
+ "0005a" "a"
+ "000bfoobar\en" "foobar\en"
+ "0004" ""
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
diff --git a/man5/gitprotocol-http.5 b/man5/gitprotocol-http.5
new file mode 100644
index 000000000..2c5d6cf4e
--- /dev/null
+++ b/man5/gitprotocol-http.5
@@ -0,0 +1,670 @@
+'\" t
+.\" Title: gitprotocol-http
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITPROTOCOL\-HTTP" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitprotocol-http \- Git HTTP\-based protocols
+.SH "SYNOPSIS"
+.sp
+.nf
+<over\-the\-wire\-protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+Git supports two HTTP based transfer protocols\&. A "dumb" protocol which requires only a standard HTTP server on the server end of the connection, and a "smart" protocol which requires a Git aware CGI (or server module)\&. This document describes both protocols\&.
+.sp
+As a design feature smart clients can automatically upgrade "dumb" protocol URLs to smart URLs\&. This permits all users to have the same published URL, and the peers automatically select the most efficient transport available to them\&.
+.SH "URL FORMAT"
+.sp
+URLs for Git repositories accessed by HTTP use the standard HTTP URL syntax documented by RFC 1738, so they are of the form:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+http://<host>:<port>/<path>?<searchpart>
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Within this documentation the placeholder \fB$GIT_URL\fR will stand for the http:// repository URL entered by the end\-user\&.
+.sp
+Servers SHOULD handle all requests to locations matching \fB$GIT_URL\fR, as both the "smart" and "dumb" HTTP protocols used by Git operate by appending additional path components onto the end of the user supplied \fB$GIT_URL\fR string\&.
+.sp
+An example of a dumb client requesting for a loose object:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$GIT_URL: http://example\&.com:8080/git/repo\&.git
+URL request: http://example\&.com:8080/git/repo\&.git/objects/d0/49f6c27a2244e12041955e262a404c7faba355
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+An example of a smart request to a catch\-all gateway:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$GIT_URL: http://example\&.com/daemon\&.cgi?svc=git&q=
+URL request: http://example\&.com/daemon\&.cgi?svc=git&q=/info/refs&service=git\-receive\-pack
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+An example of a request to a submodule:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$GIT_URL: http://example\&.com/git/repo\&.git/path/submodule\&.git
+URL request: http://example\&.com/git/repo\&.git/path/submodule\&.git/info/refs
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Clients MUST strip a trailing \fB/\fR, if present, from the user supplied \fB$GIT_URL\fR string to prevent empty path tokens (\fB//\fR) from appearing in any URL sent to a server\&. Compatible clients MUST expand \fB$GIT_URL/info/refs\fR as \fBfoo/info/refs\fR and not \fBfoo//info/refs\fR\&.
+.SH "AUTHENTICATION"
+.sp
+Standard HTTP authentication is used if authentication is required to access a repository, and MAY be configured and enforced by the HTTP server software\&.
+.sp
+Because Git repositories are accessed by standard path components server administrators MAY use directory based permissions within their HTTP server to control repository access\&.
+.sp
+Clients SHOULD support Basic authentication as described by RFC 2617\&. Servers SHOULD support Basic authentication by relying upon the HTTP server placed in front of the Git server software\&.
+.sp
+Servers SHOULD NOT require HTTP cookies for the purposes of authentication or access control\&.
+.sp
+Clients and servers MAY support other common forms of HTTP based authentication, such as Digest authentication\&.
+.SH "SSL"
+.sp
+Clients and servers SHOULD support SSL, particularly to protect passwords when relying on Basic HTTP authentication\&.
+.SH "SESSION STATE"
+.sp
+The Git over HTTP protocol (much like HTTP itself) is stateless from the perspective of the HTTP server side\&. All state MUST be retained and managed by the client process\&. This permits simple round\-robin load\-balancing on the server side, without needing to worry about state management\&.
+.sp
+Clients MUST NOT require state management on the server side in order to function correctly\&.
+.sp
+Servers MUST NOT require HTTP cookies in order to function correctly\&. Clients MAY store and forward HTTP cookies during request processing as described by RFC 2616 (HTTP/1\&.1)\&. Servers SHOULD ignore any cookies sent by a client\&.
+.SH "GENERAL REQUEST PROCESSING"
+.sp
+Except where noted, all standard HTTP behavior SHOULD be assumed by both client and server\&. This includes (but is not necessarily limited to):
+.sp
+If there is no repository at \fB$GIT_URL\fR, or the resource pointed to by a location matching \fB$GIT_URL\fR does not exist, the server MUST NOT respond with \fB200 OK\fR response\&. A server SHOULD respond with \fB404 Not Found\fR, \fB410 Gone\fR, or any other suitable HTTP status code which does not imply the resource exists as requested\&.
+.sp
+If there is a repository at \fB$GIT_URL\fR, but access is not currently permitted, the server MUST respond with the \fB403 Forbidden\fR HTTP status code\&.
+.sp
+Servers SHOULD support both HTTP 1\&.0 and HTTP 1\&.1\&. Servers SHOULD support chunked encoding for both request and response bodies\&.
+.sp
+Clients SHOULD support both HTTP 1\&.0 and HTTP 1\&.1\&. Clients SHOULD support chunked encoding for both request and response bodies\&.
+.sp
+Servers MAY return ETag and/or Last\-Modified headers\&.
+.sp
+Clients MAY revalidate cached entities by including If\-Modified\-Since and/or If\-None\-Match request headers\&.
+.sp
+Servers MAY return \fB304 Not Modified\fR if the relevant headers appear in the request and the entity has not changed\&. Clients MUST treat \fB304 Not Modified\fR identical to \fB200 OK\fR by reusing the cached entity\&.
+.sp
+Clients MAY reuse a cached entity without revalidation if the Cache\-Control and/or Expires header permits caching\&. Clients and servers MUST follow RFC 2616 for cache controls\&.
+.SH "DISCOVERING REFERENCES"
+.sp
+All HTTP clients MUST begin either a fetch or a push exchange by discovering the references available on the remote repository\&.
+.SS "Dumb Clients"
+.sp
+HTTP clients that only support the "dumb" protocol MUST discover references by making a request for the special info/refs file of the repository\&.
+.sp
+Dumb HTTP clients MUST make a \fBGET\fR request to \fB$GIT_URL/info/refs\fR, without any search/query parameters\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: GET $GIT_URL/info/refs HTTP/1\&.0
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S:
+S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint
+S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master
+S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1\&.0
+S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1\&.0^{}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The Content\-Type of the returned info/refs entity SHOULD be \fBtext/plain; charset=utf\-8\fR, but MAY be any content type\&. Clients MUST NOT attempt to validate the returned Content\-Type\&. Dumb servers MUST NOT return a return type starting with \fBapplication/x\-git\-\fR\&.
+.sp
+Cache\-Control headers MAY be returned to disable caching of the returned entity\&.
+.sp
+When examining the response clients SHOULD only examine the HTTP status code\&. Valid responses are \fB200 OK\fR, or \fB304 Not Modified\fR\&.
+.sp
+The returned content is a UNIX formatted text file describing each ref and its known value\&. The file SHOULD be sorted by name according to the C locale ordering\&. The file SHOULD NOT include the default ref named \fBHEAD\fR\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+info_refs = *( ref_record )
+ref_record = any_ref / peeled_ref
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+any_ref = obj\-id HTAB refname LF
+peeled_ref = obj\-id HTAB refname LF
+ obj\-id HTAB refname "^{}" LF
+.fi
+.if n \{\
+.RE
+.\}
+.SS "Smart Clients"
+.sp
+HTTP clients that support the "smart" protocol (or both the "smart" and "dumb" protocols) MUST discover references by making a parameterized request for the info/refs file of the repository\&.
+.sp
+The request MUST contain exactly one query parameter, \fBservice=$servicename\fR, where \fB$servicename\fR MUST be the service name the client wishes to contact to complete the operation\&. The request MUST NOT contain additional query parameters\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: GET $GIT_URL/info/refs?service=git\-upload\-pack HTTP/1\&.0
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+dumb server reply:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S:
+S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint
+S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master
+S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1\&.0
+S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1\&.0^{}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+smart server reply:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S: Content\-Type: application/x\-git\-upload\-pack\-advertisement
+S: Cache\-Control: no\-cache
+S:
+S: 001e# service=git\-upload\-pack\en
+S: 0000
+S: 004895dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\e0multi_ack\en
+S: 003fd049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\en
+S: 003c2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1\&.0\en
+S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1\&.0^{}\en
+S: 0000
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The client may send Extra Parameters (see \fBgitprotocol-pack\fR(5)) as a colon\-separated string in the Git\-Protocol HTTP header\&.
+.sp
+Uses the \fB\-\-http\-backend\-info\-refs\fR option to \fBgit-upload-pack\fR(1)\&.
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBDumb Server Response\fR
+.RS 4
+.sp
+Dumb servers MUST respond with the dumb server reply format\&.
+.sp
+See the prior section under dumb clients for a more detailed description of the dumb server response\&.
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBSmart Server Response\fR
+.RS 4
+.sp
+If the server does not recognize the requested service name, or the requested service name has been disabled by the server administrator, the server MUST respond with the \fB403 Forbidden\fR HTTP status code\&.
+.sp
+Otherwise, smart servers MUST respond with the smart server reply format for the requested service name\&.
+.sp
+Cache\-Control headers SHOULD be used to disable caching of the returned entity\&.
+.sp
+The Content\-Type MUST be \fBapplication/x\-$servicename\-advertisement\fR\&. Clients SHOULD fall back to the dumb protocol if another content type is returned\&. When falling back to the dumb protocol clients SHOULD NOT make an additional request to \fB$GIT_URL/info/refs\fR, but instead SHOULD use the response already in hand\&. Clients MUST NOT continue if they do not support the dumb protocol\&.
+.sp
+Clients MUST validate the status code is either \fB200 OK\fR or \fB304 Not Modified\fR\&.
+.sp
+Clients MUST validate the first five bytes of the response entity matches the regex \fB^[0\-9a\-f]{4}#\fR\&. If this test fails, clients MUST NOT continue\&.
+.sp
+Clients MUST parse the entire response as a sequence of pkt\-line records\&.
+.sp
+Clients MUST verify the first pkt\-line is \fB# service=$servicename\fR\&. Servers MUST set $servicename to be the request parameter value\&. Servers SHOULD include an LF at the end of this line\&. Clients MUST ignore an LF at the end of the line\&.
+.sp
+Servers MUST terminate the response with the magic \fB0000\fR end pkt\-line marker\&.
+.sp
+The returned response is a pkt\-line stream describing each ref and its known value\&. The stream SHOULD be sorted by name according to the C locale ordering\&. The stream SHOULD include the default ref named \fBHEAD\fR as the first ref\&. The stream MUST include capability declarations behind a NUL on the first ref\&.
+.sp
+The returned response contains "version 1" if "version=1" was sent as an Extra Parameter\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+smart_reply = PKT\-LINE("# service=$servicename" LF)
+ "0000"
+ *1("version 1")
+ ref_list
+ "0000"
+ref_list = empty_list / non_empty_list
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+empty_list = PKT\-LINE(zero\-id SP "capabilities^{}" NUL cap\-list LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+non_empty_list = PKT\-LINE(obj\-id SP name NUL cap_list LF)
+ *ref_record
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+cap\-list = capability *(SP capability)
+capability = 1*(LC_ALPHA / DIGIT / "\-" / "_")
+LC_ALPHA = %x61\-7A
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ref_record = any_ref / peeled_ref
+any_ref = PKT\-LINE(obj\-id SP name LF)
+peeled_ref = PKT\-LINE(obj\-id SP name LF)
+ PKT\-LINE(obj\-id SP name "^{}" LF
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SH "SMART SERVICE GIT\-UPLOAD\-PACK"
+.sp
+This service reads from the repository pointed to by \fB$GIT_URL\fR\&.
+.sp
+Clients MUST first perform ref discovery with \fB$GIT_URL/info/refs?service=git\-upload\-pack\fR\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: POST $GIT_URL/git\-upload\-pack HTTP/1\&.0
+C: Content\-Type: application/x\-git\-upload\-pack\-request
+C:
+C: 0032want 0a53e9ddeaddad63ad106860237bbf53411d11a7\en
+C: 0032have 441b40d833fdfa93eb2908e52742248faf0ee993\en
+C: 0000
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S: Content\-Type: application/x\-git\-upload\-pack\-result
+S: Cache\-Control: no\-cache
+S:
+S: \&.\&.\&.\&.ACK %s, continue
+S: \&.\&.\&.\&.NAK
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Clients MUST NOT reuse or revalidate a cached response\&. Servers MUST include sufficient Cache\-Control headers to prevent caching of the response\&.
+.sp
+Servers SHOULD support all capabilities defined here\&.
+.sp
+Clients MUST send at least one "want" command in the request body\&. Clients MUST NOT reference an id in a "want" command which did not appear in the response obtained through ref discovery unless the server advertises capability \fBallow\-tip\-sha1\-in\-want\fR or \fBallow\-reachable\-sha1\-in\-want\fR\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+compute_request = want_list
+ have_list
+ request_end
+request_end = "0000" / "done"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+want_list = PKT\-LINE(want SP cap_list LF)
+ *(want_pkt)
+want_pkt = PKT\-LINE(want LF)
+want = "want" SP id
+cap_list = capability *(SP capability)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+have_list = *PKT\-LINE("have" SP id LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+TODO: Document this further\&.
+.SS "The Negotiation Algorithm"
+.sp
+The computation to select the minimal pack proceeds as follows (C = client, S = server):
+.sp
+\fIinit step:\fR
+.sp
+C: Use ref discovery to obtain the advertised refs\&.
+.sp
+C: Place any object seen into set \fBadvertised\fR\&.
+.sp
+C: Build an empty set, \fBcommon\fR, to hold the objects that are later determined to be on both ends\&.
+.sp
+C: Build a set, \fBwant\fR, of the objects from \fBadvertised\fR the client wants to fetch, based on what it saw during ref discovery\&.
+.sp
+C: Start a queue, \fBc_pending\fR, ordered by commit time (popping newest first)\&. Add all client refs\&. When a commit is popped from the queue its parents SHOULD be automatically inserted back\&. Commits MUST only enter the queue once\&.
+.sp
+\fIone compute step:\fR
+.sp
+C: Send one \fB$GIT_URL/git\-upload\-pack\fR request:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: 0032want <want #1>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+C: 0032want <want #2>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+\&.\&.\&.\&.
+C: 0032have <common #1>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+C: 0032have <common #2>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+\&.\&.\&.\&.
+C: 0032have <have #1>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+C: 0032have <have #2>\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.
+\&.\&.\&.\&.
+C: 0000
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The stream is organized into "commands", with each command appearing by itself in a pkt\-line\&. Within a command line, the text leading up to the first space is the command name, and the remainder of the line to the first LF is the value\&. Command lines are terminated with an LF as the last byte of the pkt\-line value\&.
+.sp
+Commands MUST appear in the following order, if they appear at all in the request stream:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"want"
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+"have"
+.RE
+.sp
+The stream is terminated by a pkt\-line flush (\fB0000\fR)\&.
+.sp
+A single "want" or "have" command MUST have one hex formatted object name as its value\&. Multiple object names MUST be sent by sending multiple commands\&. Object names MUST be given using the object format negotiated through the \fBobject\-format\fR capability (default SHA\-1)\&.
+.sp
+The \fBhave\fR list is created by popping the first 32 commits from \fBc_pending\fR\&. Less can be supplied if \fBc_pending\fR empties\&.
+.sp
+If the client has sent 256 "have" commits and has not yet received one of those back from \fBs_common\fR, or the client has emptied \fBc_pending\fR it SHOULD include a "done" command to let the server know it won\(cqt proceed:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: 0009done
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+S: Parse the git\-upload\-pack request:
+.sp
+Verify all objects in \fBwant\fR are directly reachable from refs\&.
+.sp
+The server MAY walk backwards through history or through the reflog to permit slightly stale requests\&.
+.sp
+If no "want" objects are received, send an error: TODO: Define error if no "want" lines are requested\&.
+.sp
+If any "want" object is not reachable, send an error: TODO: Define error if an invalid "want" is requested\&.
+.sp
+Create an empty list, \fBs_common\fR\&.
+.sp
+If "have" was sent:
+.sp
+Loop through the objects in the order supplied by the client\&.
+.sp
+For each object, if the server has the object reachable from a ref, add it to \fBs_common\fR\&. If a commit is added to \fBs_common\fR, do not add any ancestors, even if they also appear in \fBhave\fR\&.
+.sp
+S: Send the git\-upload\-pack response:
+.sp
+If the server has found a closed set of objects to pack or the request ends with "done", it replies with the pack\&. TODO: Document the pack based response
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: PACK\&.\&.\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The returned stream is the side\-band\-64k protocol supported by the git\-upload\-pack service, and the pack is embedded into stream 1\&. Progress messages from the server side MAY appear in stream 2\&.
+.sp
+Here a "closed set of objects" is defined to have at least one path from every "want" to at least one "common" object\&.
+.sp
+If the server needs more information, it replies with a status continue response: TODO: Document the non\-pack response
+.sp
+C: Parse the upload\-pack response: TODO: Document parsing response
+.sp
+\fIDo another compute step\&.\fR
+.SH "SMART SERVICE GIT\-RECEIVE\-PACK"
+.sp
+This service reads from the repository pointed to by \fB$GIT_URL\fR\&.
+.sp
+Clients MUST first perform ref discovery with \fB$GIT_URL/info/refs?service=git\-receive\-pack\fR\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: POST $GIT_URL/git\-receive\-pack HTTP/1\&.0
+C: Content\-Type: application/x\-git\-receive\-pack\-request
+C:
+C: \&.\&.\&.\&.0a53e9ddeaddad63ad106860237bbf53411d11a7 441b40d833fdfa93eb2908e52742248faf0ee993 refs/heads/maint\e0 report\-status
+C: 0000
+C: PACK\&.\&.\&.\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S: Content\-Type: application/x\-git\-receive\-pack\-result
+S: Cache\-Control: no\-cache
+S:
+S: \&.\&.\&.\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Clients MUST NOT reuse or revalidate a cached response\&. Servers MUST include sufficient Cache\-Control headers to prevent caching of the response\&.
+.sp
+Servers SHOULD support all capabilities defined here\&.
+.sp
+Clients MUST send at least one command in the request body\&. Within the command portion of the request body clients SHOULD send the id obtained through ref discovery as old_id\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+update_request = command_list
+ "PACK" <binary data>
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command_list = PKT\-LINE(command NUL cap_list LF)
+ *(command_pkt)
+command_pkt = PKT\-LINE(command LF)
+cap_list = *(SP capability) SP
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command = create / delete / update
+create = zero\-id SP new_id SP name
+delete = old_id SP zero\-id SP name
+update = old_id SP new_id SP name
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+TODO: Document this further\&.
+.SH "REFERENCES"
+.sp
+\m[blue]\fBRFC 1738: Uniform Resource Locators (URL)\fR\m[]\&\s-2\u[1]\d\s+2 \m[blue]\fBRFC 2616: Hypertext Transfer Protocol \(em HTTP/1\&.1\fR\m[]\&\s-2\u[2]\d\s+2
+.SH "SEE ALSO"
+.sp
+\fBgitprotocol-pack\fR(5) \fBgitprotocol-capabilities\fR(5)
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
+.SH "NOTES"
+.IP " 1." 4
+RFC 1738: Uniform Resource Locators (URL)
+.RS 4
+\%http://www.ietf.org/rfc/rfc1738.txt
+.RE
+.IP " 2." 4
+RFC 2616: Hypertext Transfer Protocol \(em HTTP/1.1
+.RS 4
+\%http://www.ietf.org/rfc/rfc2616.txt
+.RE
diff --git a/man5/gitprotocol-pack.5 b/man5/gitprotocol-pack.5
new file mode 100644
index 000000000..d3de2bd8d
--- /dev/null
+++ b/man5/gitprotocol-pack.5
@@ -0,0 +1,768 @@
+'\" t
+.\" Title: gitprotocol-pack
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITPROTOCOL\-PACK" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitprotocol-pack \- How packs are transferred over\-the\-wire
+.SH "SYNOPSIS"
+.sp
+.nf
+<over\-the\-wire\-protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+Git supports transferring data in packfiles over the ssh://, git://, http:// and file:// transports\&. There exist two sets of protocols, one for pushing data from a client to a server and another for fetching data from a server to a client\&. The three transports (ssh, git, file) use the same protocol to transfer data\&. http is documented in \fBgitprotocol-http\fR(5)\&.
+.sp
+The processes invoked in the canonical Git implementation are \fIupload\-pack\fR on the server side and \fIfetch\-pack\fR on the client side for fetching data; then \fIreceive\-pack\fR on the server and \fIsend\-pack\fR on the client for pushing data\&. The protocol functions to have a server tell a client what is currently on the server, then for the two to negotiate the smallest amount of data to send in order to fully update one or the other\&.
+.SH "PKT\-LINE FORMAT"
+.sp
+The descriptions below build on the pkt\-line format described in \fBgitprotocol-common\fR(5)\&. When the grammar indicate \fBPKT\-LINE(\&.\&.\&.)\fR, unless otherwise noted the usual pkt\-line LF rules apply: the sender SHOULD include a LF, but the receiver MUST NOT complain if it is not present\&.
+.sp
+An error packet is a special pkt\-line that contains an error string\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ error\-line = PKT\-LINE("ERR" SP explanation\-text)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Throughout the protocol, where \fBPKT\-LINE(\&.\&.\&.)\fR is expected, an error packet MAY be sent\&. Once this packet is sent by a client or a server, the data transfer process defined in this protocol is terminated\&.
+.SH "TRANSPORTS"
+.sp
+There are three transports over which the packfile protocol is initiated\&. The Git transport is a simple, unauthenticated server that takes the command (almost always \fIupload\-pack\fR, though Git servers can be configured to be globally writable, in which \fIreceive\- pack\fR initiation is also allowed) with which the client wishes to communicate and executes it and connects it to the requesting process\&.
+.sp
+In the SSH transport, the client just runs the \fIupload\-pack\fR or \fIreceive\-pack\fR process on the server over the SSH protocol and then communicates with that invoked process over the SSH connection\&.
+.sp
+The file:// transport runs the \fIupload\-pack\fR or \fIreceive\-pack\fR process locally and communicates with it over a pipe\&.
+.SH "EXTRA PARAMETERS"
+.sp
+The protocol provides a mechanism in which clients can send additional information in its first message to the server\&. These are called "Extra Parameters", and are supported by the Git, SSH, and HTTP protocols\&.
+.sp
+Each Extra Parameter takes the form of \fB<key>=<value>\fR or \fB<key>\fR\&.
+.sp
+Servers that receive any such Extra Parameters MUST ignore all unrecognized keys\&. Currently, the only Extra Parameter recognized is "version" with a value of \fI1\fR or \fI2\fR\&. See \fBgitprotocol-v2\fR(5) for more information on protocol version 2\&.
+.SH "GIT TRANSPORT"
+.sp
+The Git transport starts off by sending the command and repository on the wire using the pkt\-line format, followed by a NUL byte and a hostname parameter, terminated by a NUL byte\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+0033git\-upload\-pack /project\&.git\e0host=myserver\&.com\e0
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The transport may send Extra Parameters by adding an additional NUL byte, and then adding one or more NUL\-terminated strings:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+003egit\-upload\-pack /project\&.git\e0host=myserver\&.com\e0\e0version=1\e0
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+git\-proto\-request = request\-command SP pathname NUL
+ [ host\-parameter NUL ] [ NUL extra\-parameters ]
+request\-command = "git\-upload\-pack" / "git\-receive\-pack" /
+ "git\-upload\-archive" ; case sensitive
+pathname = *( %x01\-ff ) ; exclude NUL
+host\-parameter = "host=" hostname [ ":" port ]
+extra\-parameters = 1*extra\-parameter
+extra\-parameter = 1*( %x01\-ff ) NUL
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+host\-parameter is used for the git\-daemon name based virtual hosting\&. See \-\-interpolated\-path option to git daemon, with the %H/%CH format characters\&.
+.sp
+Basically what the Git client is doing to connect to an \fIupload\-pack\fR process on the server side over the Git protocol is this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$ echo \-e \-n \e
+ "003agit\-upload\-pack /schacon/gitbook\&.git\e0host=example\&.com\e0" |
+ nc \-v example\&.com 9418
+.fi
+.if n \{\
+.RE
+.\}
+.SH "SSH TRANSPORT"
+.sp
+Initiating the upload\-pack or receive\-pack processes over SSH is executing the binary on the server via SSH remote execution\&. It is basically equivalent to running this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$ ssh git\&.example\&.com "git\-upload\-pack \(aq/project\&.git\(aq"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+For a server to support Git pushing and pulling for a given user over SSH, that user needs to be able to execute one or both of those commands via the SSH shell that they are provided on login\&. On some systems, that shell access is limited to only being able to run those two commands, or even just one of them\&.
+.sp
+In an ssh:// format URI, it\(cqs absolute in the URI, so the \fI/\fR after the host name (or port number) is sent as an argument, which is then read by the remote git\-upload\-pack exactly as is, so it\(cqs effectively an absolute path in the remote filesystem\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ git clone ssh://user@example\&.com/project\&.git
+ |
+ v
+ssh user@example\&.com "git\-upload\-pack \(aq/project\&.git\(aq"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+In a "user@host:path" format URI, its relative to the user\(cqs home directory, because the Git client will run:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ git clone user@example\&.com:project\&.git
+ |
+ v
+ssh user@example\&.com "git\-upload\-pack \(aqproject\&.git\(aq"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The exception is if a \fI~\fR is used, in which case we execute it without the leading \fI/\fR\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ ssh://user@example\&.com/~alice/project\&.git,
+ |
+ v
+ssh user@example\&.com "git\-upload\-pack \(aq~alice/project\&.git\(aq"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Depending on the value of the \fBprotocol\&.version\fR configuration variable, Git may attempt to send Extra Parameters as a colon\-separated string in the GIT_PROTOCOL environment variable\&. This is done only if the \fBssh\&.variant\fR configuration variable indicates that the ssh command supports passing environment variables as an argument\&.
+.sp
+A few things to remember here:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The "command name" is spelled with dash (e\&.g\&. git\-upload\-pack), but this can be overridden by the client;
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The repository path is always quoted with single quotes\&.
+.RE
+.SH "FETCHING DATA FROM A SERVER"
+.sp
+When one Git repository wants to get data that a second repository has, the first can \fIfetch\fR from the second\&. This operation determines what data the server has that the client does not then streams that data down to the client in packfile format\&.
+.SH "REFERENCE DISCOVERY"
+.sp
+When the client initially connects the server will immediately respond with a version number (if "version=1" is sent as an Extra Parameter), and a listing of each reference it has (all branches and tags) along with the object name that each reference currently points to\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$ echo \-e \-n "0045git\-upload\-pack /schacon/gitbook\&.git\e0host=example\&.com\e0\e0version=1\e0" |
+ nc \-v example\&.com 9418
+000eversion 1
+00887217a7c7e582c46cec22a130adf4b9d7d950fba0 HEAD\e0multi_ack thin\-pack
+ side\-band side\-band\-64k ofs\-delta shallow no\-progress include\-tag
+00441d3fcd5ced445d1abc402225c0b8a1299641f497 refs/heads/integration
+003f7217a7c7e582c46cec22a130adf4b9d7d950fba0 refs/heads/master
+003cb88d2441cac0977faf98efc80305012112238d9d refs/tags/v0\&.9
+003c525128480b96c89e6418b1e40909bf6c5b2d580f refs/tags/v1\&.0
+003fe92df48743b7bc7d26bcaabfddde0a1e20cae47c refs/tags/v1\&.0^{}
+0000
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The returned response is a pkt\-line stream describing each ref and its current value\&. The stream MUST be sorted by name according to the C locale ordering\&.
+.sp
+If HEAD is a valid ref, HEAD MUST appear as the first advertised ref\&. If HEAD is not a valid ref, HEAD MUST NOT appear in the advertisement list at all, but other refs may still appear\&.
+.sp
+The stream MUST include capability declarations behind a NUL on the first ref\&. The peeled value of a ref (that is "ref^{}") MUST be immediately after the ref itself, if presented\&. A conforming server MUST peel the ref if it\(cqs an annotated tag\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ advertised\-refs = *1("version 1")
+ (no\-refs / list\-of\-refs)
+ *shallow
+ flush\-pkt
+
+ no\-refs = PKT\-LINE(zero\-id SP "capabilities^{}"
+ NUL capability\-list)
+
+ list\-of\-refs = first\-ref *other\-ref
+ first\-ref = PKT\-LINE(obj\-id SP refname
+ NUL capability\-list)
+
+ other\-ref = PKT\-LINE(other\-tip / other\-peeled)
+ other\-tip = obj\-id SP refname
+ other\-peeled = obj\-id SP refname "^{}"
+
+ shallow = PKT\-LINE("shallow" SP obj\-id)
+
+ capability\-list = capability *(SP capability)
+ capability = 1*(LC_ALPHA / DIGIT / "\-" / "_")
+ LC_ALPHA = %x61\-7A
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Server and client MUST use lowercase for obj\-id, both MUST treat obj\-id as case\-insensitive\&.
+.sp
+See protocol\-capabilities\&.txt for a list of allowed server capabilities and descriptions\&.
+.SH "PACKFILE NEGOTIATION"
+.sp
+After reference and capabilities discovery, the client can decide to terminate the connection by sending a flush\-pkt, telling the server it can now gracefully terminate, and disconnect, when it does not need any pack data\&. This can happen with the ls\-remote command, and also can happen when the client already is up to date\&.
+.sp
+Otherwise, it enters the negotiation phase, where the client and server determine what the minimal packfile necessary for transport is, by telling the server what objects it wants, its shallow objects (if any), and the maximum commit depth it wants (if any)\&. The client will also send a list of the capabilities it wants to be in effect, out of what the server said it could do with the first \fIwant\fR line\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ upload\-request = want\-list
+ *shallow\-line
+ *1depth\-request
+ [filter\-request]
+ flush\-pkt
+
+ want\-list = first\-want
+ *additional\-want
+
+ shallow\-line = PKT\-LINE("shallow" SP obj\-id)
+
+ depth\-request = PKT\-LINE("deepen" SP depth) /
+ PKT\-LINE("deepen\-since" SP timestamp) /
+ PKT\-LINE("deepen\-not" SP ref)
+
+ first\-want = PKT\-LINE("want" SP obj\-id SP capability\-list)
+ additional\-want = PKT\-LINE("want" SP obj\-id)
+
+ depth = 1*DIGIT
+
+ filter\-request = PKT\-LINE("filter" SP filter\-spec)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Clients MUST send all the obj\-ids it wants from the reference discovery phase as \fIwant\fR lines\&. Clients MUST send at least one \fIwant\fR command in the request body\&. Clients MUST NOT mention an obj\-id in a \fIwant\fR command which did not appear in the response obtained through ref discovery\&.
+.sp
+The client MUST write all obj\-ids which it only has shallow copies of (meaning that it does not have the parents of a commit) as \fIshallow\fR lines so that the server is aware of the limitations of the client\(cqs history\&.
+.sp
+The client now sends the maximum commit history depth it wants for this transaction, which is the number of commits it wants from the tip of the history, if any, as a \fIdeepen\fR line\&. A depth of 0 is the same as not making a depth request\&. The client does not want to receive any commits beyond this depth, nor does it want objects needed only to complete those commits\&. Commits whose parents are not received as a result are defined as shallow and marked as such in the server\&. This information is sent back to the client in the next step\&.
+.sp
+The client can optionally request that pack\-objects omit various objects from the packfile using one of several filtering techniques\&. These are intended for use with partial clone and partial fetch operations\&. An object that does not meet a filter\-spec value is omitted unless explicitly requested in a \fIwant\fR line\&. See \fBrev\-list\fR for possible filter\-spec values\&.
+.sp
+Once all the \fIwant\(cqs and \(aqshallow\(cqs (and optional \(aqdeepen\fR) are transferred, clients MUST send a flush\-pkt, to tell the server side that it is done sending the list\&.
+.sp
+Otherwise, if the client sent a positive depth request, the server will determine which commits will and will not be shallow and send this information to the client\&. If the client did not request a positive depth, this step is skipped\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ shallow\-update = *shallow\-line
+ *unshallow\-line
+ flush\-pkt
+
+ shallow\-line = PKT\-LINE("shallow" SP obj\-id)
+
+ unshallow\-line = PKT\-LINE("unshallow" SP obj\-id)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+If the client has requested a positive depth, the server will compute the set of commits which are no deeper than the desired depth\&. The set of commits start at the client\(cqs wants\&.
+.sp
+The server writes \fIshallow\fR lines for each commit whose parents will not be sent as a result\&. The server writes an \fIunshallow\fR line for each commit which the client has indicated is shallow, but is no longer shallow at the currently requested depth (that is, its parents will now be sent)\&. The server MUST NOT mark as unshallow anything which the client has not indicated was shallow\&.
+.sp
+Now the client will send a list of the obj\-ids it has using \fIhave\fR lines, so the server can make a packfile that only contains the objects that the client needs\&. In multi_ack mode, the canonical implementation will send up to 32 of these at a time, then will send a flush\-pkt\&. The canonical implementation will skip ahead and send the next 32 immediately, so that there is always a block of 32 "in\-flight on the wire" at a time\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ upload\-haves = have\-list
+ compute\-end
+
+ have\-list = *have\-line
+ have\-line = PKT\-LINE("have" SP obj\-id)
+ compute\-end = flush\-pkt / PKT\-LINE("done")
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+If the server reads \fIhave\fR lines, it then will respond by ACKing any of the obj\-ids the client said it had that the server also has\&. The server will ACK obj\-ids differently depending on which ack mode is chosen by the client\&.
+.sp
+In multi_ack mode:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+the server will respond with
+\fIACK obj\-id continue\fR
+for any common commits\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+once the server has found an acceptable common base commit and is ready to make a packfile, it will blindly ACK all
+\fIhave\fR
+obj\-ids back to the client\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+the server will then send a
+\fINAK\fR
+and then wait for another response from the client \- either a
+\fIdone\fR
+or another list of
+\fIhave\fR
+lines\&.
+.RE
+.sp
+In multi_ack_detailed mode:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+the server will differentiate the ACKs where it is signaling that it is ready to send data with
+\fIACK obj\-id ready\fR
+lines, and signals the identified common commits with
+\fIACK obj\-id common\fR
+lines\&.
+.RE
+.sp
+Without either multi_ack or multi_ack_detailed:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+upload\-pack sends "ACK obj\-id" on the first common object it finds\&. After that it says nothing until the client gives it a "done"\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+upload\-pack sends "NAK" on a flush\-pkt if no common object has been found yet\&. If one has been found, and thus an ACK was already sent, it\(cqs silent on the flush\-pkt\&.
+.RE
+.sp
+After the client has gotten enough ACK responses that it can determine that the server has enough information to send an efficient packfile (in the canonical implementation, this is determined when it has received enough ACKs that it can color everything left in the \-\-date\-order queue as common with the server, or the \-\-date\-order queue is empty), or the client determines that it wants to give up (in the canonical implementation, this is determined when the client sends 256 \fIhave\fR lines without getting any of them ACKed by the server \- meaning there is nothing in common and the server should just send all of its objects), then the client will send a \fIdone\fR command\&. The \fIdone\fR command signals to the server that the client is ready to receive its packfile data\&.
+.sp
+However, the 256 limit \fBonly\fR turns on in the canonical client implementation if we have received at least one "ACK %s continue" during a prior round\&. This helps to ensure that at least one common ancestor is found before we give up entirely\&.
+.sp
+Once the \fIdone\fR line is read from the client, the server will either send a final \fIACK obj\-id\fR or it will send a \fINAK\fR\&. \fIobj\-id\fR is the object name of the last commit determined to be common\&. The server only sends ACK after \fIdone\fR if there is at least one common base and multi_ack or multi_ack_detailed is enabled\&. The server always sends NAK after \fIdone\fR if there is no common base found\&.
+.sp
+Instead of \fIACK\fR or \fINAK\fR, the server may send an error message (for example, if it does not recognize an object in a \fIwant\fR line received from the client)\&.
+.sp
+Then the server will start sending its packfile data\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ server\-response = *ack_multi ack / nak
+ ack_multi = PKT\-LINE("ACK" SP obj\-id ack_status)
+ ack_status = "continue" / "common" / "ready"
+ ack = PKT\-LINE("ACK" SP obj\-id)
+ nak = PKT\-LINE("NAK")
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+A simple clone may look like this (with no \fIhave\fR lines):
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ C: 0054want 74730d410fcb6603ace96f1dc55ea6196122532d multi_ack \e
+ side\-band\-64k ofs\-delta\en
+ C: 0032want 7d1665144a3a975c05f1f43902ddaf084e784dbe\en
+ C: 0032want 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a\en
+ C: 0032want 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\en
+ C: 0032want 74730d410fcb6603ace96f1dc55ea6196122532d\en
+ C: 0000
+ C: 0009done\en
+
+ S: 0008NAK\en
+ S: [PACKFILE]
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+An incremental update (fetch) response might look like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ C: 0054want 74730d410fcb6603ace96f1dc55ea6196122532d multi_ack \e
+ side\-band\-64k ofs\-delta\en
+ C: 0032want 7d1665144a3a975c05f1f43902ddaf084e784dbe\en
+ C: 0032want 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a\en
+ C: 0000
+ C: 0032have 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01\en
+ C: [30 more have lines]
+ C: 0032have 74730d410fcb6603ace96f1dc55ea6196122532d\en
+ C: 0000
+
+ S: 003aACK 7e47fe2bd8d01d481f44d7af0531bd93d3b21c01 continue\en
+ S: 003aACK 74730d410fcb6603ace96f1dc55ea6196122532d continue\en
+ S: 0008NAK\en
+
+ C: 0009done\en
+
+ S: 0031ACK 74730d410fcb6603ace96f1dc55ea6196122532d\en
+ S: [PACKFILE]
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "PACKFILE DATA"
+.sp
+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 will construct and send the required data in packfile format\&.
+.sp
+See \fBgitformat-pack\fR(5) for what the packfile itself actually looks like\&.
+.sp
+If \fIside\-band\fR or \fIside\-band\-64k\fR capabilities have been specified by the client, the server will send the packfile data multiplexed\&.
+.sp
+Each packet starting with the packet\-line length of the amount of data that follows, followed by a single byte specifying the sideband the following data is coming in on\&.
+.sp
+In \fIside\-band\fR mode, it will send up to 999 data bytes plus 1 control code, for a total of up to 1000 bytes in a pkt\-line\&. In \fIside\-band\-64k\fR mode it will send up to 65519 data bytes plus 1 control code, for a total of up to 65520 bytes in a pkt\-line\&.
+.sp
+The sideband byte will be a \fI1\fR, \fI2\fR or a \fI3\fR\&. Sideband \fI1\fR will contain packfile data, sideband \fI2\fR will be used for progress information that the client will generally print to stderr and sideband \fI3\fR is used for error information\&.
+.sp
+If no \fIside\-band\fR capability was specified, the server will stream the entire packfile without multiplexing\&.
+.SH "PUSHING DATA TO A SERVER"
+.sp
+Pushing data to a server will invoke the \fIreceive\-pack\fR process on the server, which will allow the client to tell it which references it should update and then send all the data the server will need for those new references to be complete\&. Once all the data is received and validated, the server will then update its references to what the client specified\&.
+.SH "AUTHENTICATION"
+.sp
+The protocol itself contains no authentication mechanisms\&. That is to be handled by the transport, such as SSH, before the \fIreceive\-pack\fR process is invoked\&. If \fIreceive\-pack\fR is configured over the Git transport, those repositories will be writable by anyone who can access that port (9418) as that transport is unauthenticated\&.
+.SH "REFERENCE DISCOVERY"
+.sp
+The reference discovery phase is done nearly the same way as it is in the fetching protocol\&. Each reference obj\-id and name on the server is sent in packet\-line format to the client, followed by a flush\-pkt\&. The only real difference is that the capability listing is different \- the only possible values are \fIreport\-status\fR, \fIreport\-status\-v2\fR, \fIdelete\-refs\fR, \fIofs\-delta\fR, \fIatomic\fR and \fIpush\-options\fR\&.
+.SH "REFERENCE UPDATE REQUEST AND PACKFILE TRANSFER"
+.sp
+Once the client knows what references the server is at, it can send a list of reference update requests\&. For each reference on the server that it wants to update, it sends a line listing the obj\-id currently on the server, the obj\-id the client would like to update it to and the name of the reference\&.
+.sp
+This list is followed by a flush\-pkt\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ update\-requests = *shallow ( command\-list | push\-cert )
+
+ shallow = PKT\-LINE("shallow" SP obj\-id)
+
+ command\-list = PKT\-LINE(command NUL capability\-list)
+ *PKT\-LINE(command)
+ flush\-pkt
+
+ command = create / delete / update
+ create = zero\-id SP new\-id SP name
+ delete = old\-id SP zero\-id SP name
+ update = old\-id SP new\-id SP name
+
+ old\-id = obj\-id
+ new\-id = obj\-id
+
+ push\-cert = PKT\-LINE("push\-cert" NUL capability\-list LF)
+ PKT\-LINE("certificate version 0\&.1" LF)
+ PKT\-LINE("pusher" SP ident LF)
+ PKT\-LINE("pushee" SP url LF)
+ PKT\-LINE("nonce" SP nonce LF)
+ *PKT\-LINE("push\-option" SP push\-option LF)
+ PKT\-LINE(LF)
+ *PKT\-LINE(command LF)
+ *PKT\-LINE(gpg\-signature\-lines LF)
+ PKT\-LINE("push\-cert\-end" LF)
+
+ push\-option = 1*( VCHAR | SP )
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+If the server has advertised the \fIpush\-options\fR capability and the client has specified \fIpush\-options\fR as part of the capability list above, the client then sends its push options followed by a flush\-pkt\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ push\-options = *PKT\-LINE(push\-option) flush\-pkt
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+For backwards compatibility with older Git servers, if the client sends a push cert and push options, it MUST send its push options both embedded within the push cert and after the push cert\&. (Note that the push options within the cert are prefixed, but the push options after the cert are not\&.) Both these lists MUST be the same, modulo the prefix\&.
+.sp
+After that the packfile that should contain all the objects that the server will need to complete the new references will be sent\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ packfile = "PACK" 28*(OCTET)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+If the receiving end does not support delete\-refs, the sending end MUST NOT ask for delete command\&.
+.sp
+If the receiving end does not support push\-cert, the sending end MUST NOT send a push\-cert command\&. When a push\-cert command is sent, command\-list MUST NOT be sent; the commands recorded in the push certificate is used instead\&.
+.sp
+The packfile MUST NOT be sent if the only command used is \fIdelete\fR\&.
+.sp
+A packfile MUST be sent if either create or update command is used, even if the server already has all the necessary objects\&. In this case the client MUST send an empty packfile\&. The only time this is likely to happen is if the client is creating a new branch or a tag that points to an existing obj\-id\&.
+.sp
+The server will receive the packfile, unpack it, then validate each reference that is being updated that it hasn\(cqt changed while the request was being processed (the obj\-id is still the same as the old\-id), and it will run any update hooks to make sure that the update is acceptable\&. If all of that is fine, the server will then update the references\&.
+.SH "PUSH CERTIFICATE"
+.sp
+A push certificate begins with a set of header lines\&. After the header and an empty line, the protocol commands follow, one per line\&. Note that the trailing LF in push\-cert PKT\-LINEs is \fInot\fR optional; it must be present\&.
+.sp
+Currently, the following header fields are defined:
+.PP
+\fBpusher\fR ident
+.RS 4
+Identify the GPG key in "Human Readable Name <\m[blue]\fBemail@address\fR\m[]\&\s-2\u[1]\d\s+2>" format\&.
+.RE
+.PP
+\fBpushee\fR url
+.RS 4
+The repository URL (anonymized, if the URL contains authentication material) the user who ran
+\fBgit push\fR
+intended to push into\&.
+.RE
+.PP
+\fBnonce\fR nonce
+.RS 4
+The
+\fInonce\fR
+string the receiving repository asked the pushing user to include in the certificate, to prevent replay attacks\&.
+.RE
+.sp
+The GPG signature lines are a detached signature for the contents recorded in the push certificate before the signature block begins\&. The detached signature is used to certify that the commands were given by the pusher, who must be the signer\&.
+.SH "REPORT STATUS"
+.sp
+After receiving the pack data from the sender, the receiver sends a report if \fIreport\-status\fR or \fIreport\-status\-v2\fR capability is in effect\&. It is a short listing of what happened in that update\&. It will first list the status of the packfile unpacking as either \fIunpack ok\fR or \fIunpack [error]\fR\&. Then it will list the status for each of the references that it tried to update\&. Each line is either \fIok [refname]\fR if the update was successful, or \fIng [refname] [error]\fR if the update was not\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ report\-status = unpack\-status
+ 1*(command\-status)
+ flush\-pkt
+
+ unpack\-status = PKT\-LINE("unpack" SP unpack\-result)
+ unpack\-result = "ok" / error\-msg
+
+ command\-status = command\-ok / command\-fail
+ command\-ok = PKT\-LINE("ok" SP refname)
+ command\-fail = PKT\-LINE("ng" SP refname SP error\-msg)
+
+ error\-msg = 1*(OCTET) ; where not "ok"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+The \fIreport\-status\-v2\fR capability extends the protocol by adding new option lines in order to support reporting of reference rewritten by the \fIproc\-receive\fR hook\&. The \fIproc\-receive\fR hook may handle a command for a pseudo\-reference which may create or update one or more references, and each reference may have different name, different new\-oid, and different old\-oid\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ report\-status\-v2 = unpack\-status
+ 1*(command\-status\-v2)
+ flush\-pkt
+
+ unpack\-status = PKT\-LINE("unpack" SP unpack\-result)
+ unpack\-result = "ok" / error\-msg
+
+ command\-status\-v2 = command\-ok\-v2 / command\-fail
+ command\-ok\-v2 = command\-ok
+ *option\-line
+
+ command\-ok = PKT\-LINE("ok" SP refname)
+ command\-fail = PKT\-LINE("ng" SP refname SP error\-msg)
+
+ error\-msg = 1*(OCTET) ; where not "ok"
+
+ option\-line = *1(option\-refname)
+ *1(option\-old\-oid)
+ *1(option\-new\-oid)
+ *1(option\-forced\-update)
+
+ option\-refname = PKT\-LINE("option" SP "refname" SP refname)
+ option\-old\-oid = PKT\-LINE("option" SP "old\-oid" SP obj\-id)
+ option\-new\-oid = PKT\-LINE("option" SP "new\-oid" SP obj\-id)
+ option\-force = PKT\-LINE("option" SP "forced\-update")
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Updates can be unsuccessful for a number of reasons\&. The reference can have changed since the reference discovery phase was originally sent, meaning someone pushed in the meantime\&. The reference being pushed could be a non\-fast\-forward reference and the update hooks or configuration could be set to not allow that, etc\&. Also, some references can be updated while others can be rejected\&.
+.sp
+An example client/server communication might look like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ S: 006274730d410fcb6603ace96f1dc55ea6196122532d refs/heads/local\e0report\-status delete\-refs ofs\-delta\en
+ S: 003e7d1665144a3a975c05f1f43902ddaf084e784dbe refs/heads/debug\en
+ S: 003f74730d410fcb6603ace96f1dc55ea6196122532d refs/heads/master\en
+ S: 003d74730d410fcb6603ace96f1dc55ea6196122532d refs/heads/team\en
+ S: 0000
+
+ C: 00677d1665144a3a975c05f1f43902ddaf084e784dbe 74730d410fcb6603ace96f1dc55ea6196122532d refs/heads/debug\en
+ C: 006874730d410fcb6603ace96f1dc55ea6196122532d 5a3f6be755bbb7deae50065988cbfa1ffa9ab68a refs/heads/master\en
+ C: 0000
+ C: [PACKDATA]
+
+ S: 000eunpack ok\en
+ S: 0018ok refs/heads/debug\en
+ S: 002ang refs/heads/master non\-fast\-forward\en
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
+.SH "NOTES"
+.IP " 1." 4
+email@address
+.RS 4
+\%mailto:email@address
+.RE
diff --git a/man5/gitprotocol-v2.5 b/man5/gitprotocol-v2.5
new file mode 100644
index 000000000..5978ff2ce
--- /dev/null
+++ b/man5/gitprotocol-v2.5
@@ -0,0 +1,1102 @@
+'\" t
+.\" Title: gitprotocol-v2
+.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 08/18/2022
+.\" Manual: Git Manual
+.\" Source: Git 2.37.2.382.g795ea8776b
+.\" Language: English
+.\"
+.TH "GITPROTOCOL\-V2" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+gitprotocol-v2 \- Git Wire Protocol, Version 2
+.SH "SYNOPSIS"
+.sp
+.nf
+<over\-the\-wire\-protocol>
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+This document presents a specification for a version 2 of Git\(cqs wire protocol\&. Protocol v2 will improve upon v1 in the following ways:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Instead of multiple service names, multiple commands will be supported by a single service
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Easily extendable as capabilities are moved into their own section of the protocol, no longer being hidden behind a NUL byte and limited by the size of a pkt\-line
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Separate out other information hidden behind NUL bytes (e\&.g\&. agent string as a capability and symrefs can be requested using
+\fIls\-refs\fR)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Reference advertisement will be omitted unless explicitly requested
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+ls\-refs command to explicitly request some refs
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Designed with http and stateless\-rpc in mind\&. With clear flush semantics the http remote helper can simply act as a proxy
+.RE
+.sp
+In protocol v2 communication is command oriented\&. When first contacting a server a list of capabilities will advertised\&. Some of these capabilities will be commands which a client can request be executed\&. Once a command has completed, a client can reuse the connection and request that other commands be executed\&.
+.SH "PACKET\-LINE FRAMING"
+.sp
+All communication is done using packet\-line framing, just as in v1\&. See \fBgitprotocol-pack\fR(5) and \fBgitprotocol-common\fR(5) for more information\&.
+.sp
+In protocol v2 these special packets will have the following semantics:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fI0000\fR
+Flush Packet (flush\-pkt) \- indicates the end of a message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fI0001\fR
+Delimiter Packet (delim\-pkt) \- separates sections of a message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fI0002\fR
+Response End Packet (response\-end\-pkt) \- indicates the end of a response for stateless connections
+.RE
+.SH "INITIAL CLIENT REQUEST"
+.sp
+In general a client can request to speak protocol v2 by sending \fBversion=2\fR through the respective side\-channel for the transport being used which inevitably sets \fBGIT_PROTOCOL\fR\&. More information can be found in \fBgitprotocol-pack\fR(5) and \fBgitprotocol-http\fR(5), as well as the \fBGIT_PROTOCOL\fR definition in \fBgit\&.txt\fR\&. In all cases the response from the server is the capability advertisement\&.
+.SS "Git Transport"
+.sp
+When using the git:// transport, you can request to use protocol v2 by sending "version=2" as an extra parameter:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+003egit\-upload\-pack /project\&.git\e0host=myserver\&.com\e0\e0version=2\e0
+.fi
+.if n \{\
+.RE
+.\}
+.SS "SSH and File Transport"
+.sp
+When using either the ssh:// or file:// transport, the GIT_PROTOCOL environment variable must be set explicitly to include "version=2"\&. The server may need to be configured to allow this environment variable to pass\&.
+.SS "HTTP Transport"
+.sp
+When using the http:// or https:// transport a client makes a "smart" info/refs request as described in \fBgitprotocol-http\fR(5) and requests that v2 be used by supplying "version=2" in the \fBGit\-Protocol\fR header\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+C: GET $GIT_URL/info/refs?service=git\-upload\-pack HTTP/1\&.0
+C: Git\-Protocol: version=2
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+A v2 server would reply:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+S: 200 OK
+S: <Some headers>
+S: \&.\&.\&.
+S:
+S: 000eversion 2\en
+S: <capability\-advertisement>
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Subsequent requests are then made directly to the service \fB$GIT_URL/git\-upload\-pack\fR\&. (This works the same for git\-receive\-pack)\&.
+.sp
+Uses the \fB\-\-http\-backend\-info\-refs\fR option to \fBgit-upload-pack\fR(1)\&.
+.sp
+The server may need to be configured to pass this header\(cqs contents via the \fBGIT_PROTOCOL\fR variable\&. See the discussion in \fBgit\-http\-backend\&.txt\fR\&.
+.SH "CAPABILITY ADVERTISEMENT"
+.sp
+A server which decides to communicate (based on a request from a client) using protocol version 2, notifies the client by sending a version string in its initial response followed by an advertisement of its capabilities\&. Each capability is a key with an optional value\&. Clients must ignore all unknown keys\&. Semantics of unknown values are left to the definition of each key\&. Some capabilities will describe commands which can be requested to be executed by the client\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+capability\-advertisement = protocol\-version
+ capability\-list
+ flush\-pkt
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+protocol\-version = PKT\-LINE("version 2" LF)
+capability\-list = *capability
+capability = PKT\-LINE(key[=value] LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+key = 1*(ALPHA | DIGIT | "\-_")
+value = 1*(ALPHA | DIGIT | " \-_\&.,?\e/{}[]()<>!@#$%^&*+=:;")
+.fi
+.if n \{\
+.RE
+.\}
+.SH "COMMAND REQUEST"
+.sp
+After receiving the capability advertisement, a client can then issue a request to select the command it wants with any particular capabilities or arguments\&. There is then an optional section where the client can provide any command specific parameters or queries\&. Only a single command can be requested at a time\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+request = empty\-request | command\-request
+empty\-request = flush\-pkt
+command\-request = command
+ capability\-list
+ delim\-pkt
+ command\-args
+ flush\-pkt
+command = PKT\-LINE("command=" key LF)
+command\-args = *command\-specific\-arg
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+command\-specific\-args are packet line framed arguments defined by
+each individual command\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The server will then check to ensure that the client\(cqs request is comprised of a valid command as well as valid capabilities which were advertised\&. If the request is valid the server will then execute the command\&. A server MUST wait till it has received the client\(cqs entire request before issuing a response\&. The format of the response is determined by the command being executed, but in all cases a flush\-pkt indicates the end of the response\&.
+.sp
+When a command has finished, and the client has received the entire response from the server, a client can either request that another command be executed or can terminate the connection\&. A client may optionally send an empty request consisting of just a flush\-pkt to indicate that no more requests will be made\&.
+.SH "CAPABILITIES"
+.sp
+There are two different types of capabilities: normal capabilities, which can be used to convey information or alter the behavior of a request, and commands, which are the core actions that a client wants to perform (fetch, push, etc)\&.
+.sp
+Protocol version 2 is stateless by default\&. This means that all commands must only last a single round and be stateless from the perspective of the server side, unless the client has requested a capability indicating that state should be maintained by the server\&. Clients MUST NOT require state management on the server side in order to function correctly\&. This permits simple round\-robin load\-balancing on the server side, without needing to worry about state management\&.
+.SS "agent"
+.sp
+The server can advertise the \fBagent\fR capability with a value \fBX\fR (in the form \fBagent=X\fR) to notify the client that the server is running version \fBX\fR\&. The client may optionally send its own agent string by including the \fBagent\fR capability with a value \fBY\fR (in the form \fBagent=Y\fR) in its request to the server (but it MUST NOT do so if the server did not advertise the agent capability)\&. The \fBX\fR and \fBY\fR strings may contain any printable ASCII characters except space (i\&.e\&., the byte range 32 < x < 127), and are typically of the form "package/version" (e\&.g\&., "git/1\&.8\&.3\&.1")\&. The agent strings are purely informative for statistics and debugging purposes, and MUST NOT be used to programmatically assume the presence or absence of particular features\&.
+.SS "ls\-refs"
+.sp
+\fBls\-refs\fR is the command used to request a reference advertisement in v2\&. Unlike the current reference advertisement, ls\-refs takes in arguments which can be used to limit the refs sent from the server\&.
+.sp
+Additional features not supported in the base command will be advertised as the value of the command in the capability advertisement in the form of a space separated list of features: "<command>=<feature 1> <feature 2>"
+.sp
+ls\-refs takes in the following arguments:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+symrefs
+ In addition to the object pointed by it, show the underlying ref
+ pointed by it when showing a symbolic ref\&.
+peel
+ Show peeled tags\&.
+ref\-prefix <prefix>
+ When specified, only references having a prefix matching one of
+ the provided prefixes are displayed\&. Multiple instances may be
+ given, in which case references matching any prefix will be
+ shown\&. Note that this is purely for optimization; a server MAY
+ show refs not matching the prefix if it chooses, and clients
+ should filter the result themselves\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIunborn\fR feature is advertised the following argument can be included in the client\(cqs request\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+unborn
+ The server will send information about HEAD even if it is a symref
+ pointing to an unborn branch in the form "unborn HEAD
+ symref\-target:<target>"\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The output of ls\-refs is as follows:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+output = *ref
+ flush\-pkt
+obj\-id\-or\-unborn = (obj\-id | "unborn")
+ref = PKT\-LINE(obj\-id\-or\-unborn SP refname *(SP ref\-attribute) LF)
+ref\-attribute = (symref | peeled)
+symref = "symref\-target:" symref\-target
+peeled = "peeled:" obj\-id
+.fi
+.if n \{\
+.RE
+.\}
+.SS "fetch"
+.sp
+\fBfetch\fR is the command used to fetch a packfile in v2\&. It can be looked at as a modified version of the v1 fetch where the ref\-advertisement is stripped out (since the \fBls\-refs\fR command fills that role) and the message format is tweaked to eliminate redundancies and permit easy addition of future extensions\&.
+.sp
+Additional features not supported in the base command will be advertised as the value of the command in the capability advertisement in the form of a space separated list of features: "<command>=<feature 1> <feature 2>"
+.sp
+A \fBfetch\fR request can take the following arguments:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+want <oid>
+ Indicates to the server an object which the client wants to
+ retrieve\&. Wants can be anything and are not limited to
+ advertised objects\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+have <oid>
+ Indicates to the server an object which the client has locally\&.
+ This allows the server to make a packfile which only contains
+ the objects that the client needs\&. Multiple \(aqhave\(aq lines can be
+ supplied\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+done
+ Indicates to the server that negotiation should terminate (or
+ not even begin if performing a clone) and that the server should
+ use the information supplied in the request to construct the
+ packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+thin\-pack
+ Request that a thin pack be sent, which is a pack with deltas
+ which reference base objects not contained within the pack (but
+ are known to exist at the receiving end)\&. This can reduce the
+ network traffic significantly, but it requires the receiving end
+ to know how to "thicken" these packs by adding the missing bases
+ to the pack\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+no\-progress
+ Request that progress information that would normally be sent on
+ side\-band channel 2, during the packfile transfer, should not be
+ sent\&. However, the side\-band channel 3 is still used for error
+ responses\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+include\-tag
+ Request that annotated tags should be sent if the objects they
+ point to are being sent\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ofs\-delta
+ Indicate that the client understands PACKv2 with delta referring
+ to its base by position in pack rather than by an oid\&. That is,
+ they can read OBJ_OFS_DELTA (aka type 6) in a packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIshallow\fR feature is advertised the following arguments can be included in the clients request as well as the potential addition of the \fIshallow\-info\fR section in the server\(cqs response as explained below\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+shallow <oid>
+ A client must notify the server of all commits for which it only
+ has shallow copies (meaning that it doesn\(aqt have the parents of
+ a commit) by supplying a \(aqshallow <oid>\(aq line for each such
+ object so that the server is aware of the limitations of the
+ client\(aqs history\&. This is so that the server is aware that the
+ client may not have all objects reachable from such commits\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+deepen <depth>
+ Requests that the fetch/clone should be shallow having a commit
+ depth of <depth> relative to the remote side\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+deepen\-relative
+ Requests that the semantics of the "deepen" command be changed
+ to indicate that the depth requested is relative to the client\(aqs
+ current shallow boundary, instead of relative to the requested
+ commits\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+deepen\-since <timestamp>
+ Requests that the shallow clone/fetch should be cut at a
+ specific time, instead of depth\&. Internally it\(aqs equivalent to
+ doing "git rev\-list \-\-max\-age=<timestamp>"\&. Cannot be used with
+ "deepen"\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+deepen\-not <rev>
+ Requests that the shallow clone/fetch should be cut at a
+ specific revision specified by \(aq<rev>\(aq, instead of a depth\&.
+ Internally it\(aqs equivalent of doing "git rev\-list \-\-not <rev>"\&.
+ Cannot be used with "deepen", but can be used with
+ "deepen\-since"\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIfilter\fR feature is advertised, the following argument can be included in the client\(cqs request:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+filter <filter\-spec>
+ Request that various objects from the packfile be omitted
+ using one of several filtering techniques\&. These are intended
+ for use with partial clone and partial fetch operations\&. See
+ `rev\-list` for possible "filter\-spec" values\&. When communicating
+ with other processes, senders SHOULD translate scaled integers
+ (e\&.g\&. "1k") into a fully\-expanded form (e\&.g\&. "1024") to aid
+ interoperability with older receivers that may not understand
+ newly\-invented scaling suffixes\&. However, receivers SHOULD
+ accept the following suffixes: \(aqk\(aq, \(aqm\(aq, and \(aqg\(aq for 1024,
+ 1048576, and 1073741824, respectively\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIref\-in\-want\fR feature is advertised, the following argument can be included in the client\(cqs request as well as the potential addition of the \fIwanted\-refs\fR section in the server\(cqs response as explained below\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+want\-ref <ref>
+ Indicates to the server that the client wants to retrieve a
+ particular ref, where <ref> is the full name of a ref on the
+ server\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIsideband\-all\fR feature is advertised, the following argument can be included in the client\(cqs request:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+sideband\-all
+ Instruct the server to send the whole response multiplexed, not just
+ the packfile section\&. All non\-flush and non\-delim PKT\-LINE in the
+ response (not only in the packfile section) will then start with a byte
+ indicating its sideband (1, 2, or 3), and the server may send "0005\e2"
+ (a PKT\-LINE of sideband 2 with no payload) as a keepalive packet\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIpackfile\-uris\fR feature is advertised, the following argument can be included in the client\(cqs request as well as the potential addition of the \fIpackfile\-uris\fR section in the server\(cqs response as explained below\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packfile\-uris <comma\-separated list of protocols>
+ Indicates to the server that the client is willing to receive
+ URIs of any of the given protocols in place of objects in the
+ sent packfile\&. Before performing the connectivity check, the
+ client should download from all given URIs\&. Currently, the
+ protocols supported are "http" and "https"\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If the \fIwait\-for\-done\fR feature is advertised, the following argument can be included in the client\(cqs request\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+wait\-for\-done
+ Indicates to the server that it should never send "ready", but
+ should wait for the client to say "done" before sending the
+ packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The response of \fBfetch\fR is broken into a number of sections separated by delimiter packets (0001), with each section beginning with its section header\&. Most sections are sent only when the packfile is sent\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+output = acknowledgements flush\-pkt |
+ [acknowledgments delim\-pkt] [shallow\-info delim\-pkt]
+ [wanted\-refs delim\-pkt] [packfile\-uris delim\-pkt]
+ packfile flush\-pkt
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+acknowledgments = PKT\-LINE("acknowledgments" LF)
+ (nak | *ack)
+ (ready)
+ready = PKT\-LINE("ready" LF)
+nak = PKT\-LINE("NAK" LF)
+ack = PKT\-LINE("ACK" SP obj\-id LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+shallow\-info = PKT\-LINE("shallow\-info" LF)
+ *PKT\-LINE((shallow | unshallow) LF)
+shallow = "shallow" SP obj\-id
+unshallow = "unshallow" SP obj\-id
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+wanted\-refs = PKT\-LINE("wanted\-refs" LF)
+ *PKT\-LINE(wanted\-ref LF)
+wanted\-ref = obj\-id SP refname
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packfile\-uris = PKT\-LINE("packfile\-uris" LF) *packfile\-uri
+packfile\-uri = PKT\-LINE(40*(HEXDIGIT) SP *%x20\-ff LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packfile = PKT\-LINE("packfile" LF)
+ *PKT\-LINE(%x01\-03 *%x00\-ff)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+acknowledgments section
+ * If the client determines that it is finished with negotiations by
+ sending a "done" line (thus requiring the server to send a packfile),
+ the acknowledgments sections MUST be omitted from the server\(aqs
+ response\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Always begins with the section header "acknowledgments"
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server will respond with "NAK" if none of the object ids sent as have lines were common\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server will respond with "ACK obj\-id" for all of the object ids sent as have lines which are common\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A response cannot have both "ACK" lines as well as a "NAK" line\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server will respond with a "ready" line indicating that the server has found an acceptable common base and is ready to make and send a packfile (which will be found in the packfile section of the same response)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+If the server has found a suitable cut point and has decided to send a "ready" line, then the server can decide to (as an optimization) omit any "ACK" lines it would have sent during its response\&. This is because the server will have already determined the objects it plans to send to the client and no further negotiation is needed\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+shallow\-info section
+ * If the client has requested a shallow fetch/clone, a shallow
+ client requests a fetch or the server is shallow then the
+ server\(aqs response may include a shallow\-info section\&. The
+ shallow\-info section will be included if (due to one of the
+ above conditions) the server needs to inform the client of any
+ shallow boundaries or adjustments to the clients already
+ existing shallow boundaries\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Always begins with the section header "shallow\-info"
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+If a positive depth is requested, the server will compute the set of commits which are no deeper than the desired depth\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server sends a "shallow obj\-id" line for each commit whose parents will not be sent in the following packfile\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server sends an "unshallow obj\-id" line for each commit which the client has indicated is shallow, but is no longer shallow as a result of the fetch (due to its parents being sent in the following packfile)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server MUST NOT send any "unshallow" lines for anything which the client has not indicated was shallow as a part of its request\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+wanted\-refs section
+ * This section is only included if the client has requested a
+ ref using a \(aqwant\-ref\(aq line and if a packfile section is also
+ included in the response\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Always begins with the section header "wanted\-refs"\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server will send a ref listing ("<oid> <refname>") for each reference requested using
+\fIwant\-ref\fR
+lines\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The server MUST NOT send any refs which were not requested using
+\fIwant\-ref\fR
+lines\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packfile\-uris section
+ * This section is only included if the client sent
+ \(aqpackfile\-uris\(aq and the server has at least one such URI to
+ send\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Always begins with the section header "packfile\-uris"\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+For each URI the server sends, it sends a hash of the pack\(cqs contents (as output by git index\-pack) followed by the URI\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The hashes are 40 hex characters long\&. When Git upgrades to a new hash algorithm, this might need to be updated\&. (It should match whatever index\-pack outputs after "pack\et" or "keep\et"\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+packfile section
+ * This section is only included if the client has sent \(aqwant\(aq
+ lines in its request and either requested that no more
+ negotiation be done by sending \(aqdone\(aq or if the server has
+ decided it has found a sufficient cut point to produce a
+ packfile\&.
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Always begins with the section header "packfile"
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The transmission of the packfile begins immediately after the section header
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+The data transfer of the packfile is always multiplexed, using the same semantics of the
+\fIside\-band\-64k\fR
+capability from protocol version 1\&. This means that each packet, during the packfile data stream, is made up of a leading 4\-byte pkt\-line length (typical of the pkt\-line format), followed by a 1\-byte stream code, followed by the actual data\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+The stream code can be one of:
+ 1 \- pack data
+ 2 \- progress messages
+ 3 \- fatal error message just before stream aborts
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SS "server\-option"
+.sp
+If advertised, indicates that any number of server specific options can be included in a request\&. This is done by sending each option as a "server\-option=<option>" capability line in the capability\-list section of a request\&.
+.sp
+The provided options must not contain a NUL or LF character\&.
+.SS "object\-format"
+.sp
+The server can advertise the \fBobject\-format\fR capability with a value \fBX\fR (in the form \fBobject\-format=X\fR) to notify the client that the server is able to deal with objects using hash algorithm X\&. If not specified, the server is assumed to only handle SHA\-1\&. If the client would like to use a hash algorithm other than SHA\-1, it should specify its object\-format string\&.
+.SS "session\-id=<session id>"
+.sp
+The server may advertise a session ID that can be used to identify this process across multiple requests\&. The client may advertise its own session ID back to the server as well\&.
+.sp
+Session IDs should be unique to a given process\&. They must fit within a packet\-line, and must not contain non\-printable or whitespace characters\&. The current implementation uses trace2 session IDs (see \m[blue]\fBapi\-trace2\fR\m[]\&\s-2\u[1]\d\s+2 for details), but this may change and users of the session ID should not rely on this fact\&.
+.SS "object\-info"
+.sp
+\fBobject\-info\fR is the command to retrieve information about one or more objects\&. Its main purpose is to allow a client to make decisions based on this information without having to fully fetch objects\&. Object size is the only information that is currently supported\&.
+.sp
+An \fBobject\-info\fR request takes the following arguments:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+size
+Requests size information to be returned for each listed object id\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+oid <oid>
+Indicates to the server an object which the client wants to obtain
+information for\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The response of \fBobject\-info\fR is a list of the requested object ids and associated requested information, each separated by a single space\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+output = info flush\-pkt
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+info = PKT\-LINE(attrs) LF)
+ *PKT\-LINE(obj\-info LF)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+attrs = attr | attrs SP attrs
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+attr = "size"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+obj\-info = obj\-id SP obj\-size
+.fi
+.if n \{\
+.RE
+.\}
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
+.SH "NOTES"
+.IP " 1." 4
+api-trace2
+.RS 4
+\%git-htmldocs/api-trace2.html
+.RE
diff --git a/man5/gitrepository-layout.5 b/man5/gitrepository-layout.5
index 9d1f5d64f..eaad84bfd 100644
--- a/man5/gitrepository-layout.5
+++ b/man5/gitrepository-layout.5
@@ -2,12 +2,12 @@
.\" Title: gitrepository-layout
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITREPOSITORY\-LAYOU" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITREPOSITORY\-LAYOU" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man5/gitweb.conf.5 b/man5/gitweb.conf.5
index 60148a54d..dc607d458 100644
--- a/man5/gitweb.conf.5
+++ b/man5/gitweb.conf.5
@@ -2,12 +2,12 @@
.\" Title: gitweb.conf
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITWEB\&.CONF" "5" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITWEB\&.CONF" "5" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitcli.7 b/man7/gitcli.7
index 1d75c8051..4876ee634 100644
--- a/man7/gitcli.7
+++ b/man7/gitcli.7
@@ -2,12 +2,12 @@
.\" Title: gitcli
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITCLI" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITCLI" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitcore-tutorial.7 b/man7/gitcore-tutorial.7
index 5303da53a..e2feee2c2 100644
--- a/man7/gitcore-tutorial.7
+++ b/man7/gitcore-tutorial.7
@@ -2,12 +2,12 @@
.\" Title: gitcore-tutorial
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITCORE\-TUTORIAL" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITCORE\-TUTORIAL" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitcredentials.7 b/man7/gitcredentials.7
index f1b0dbf69..7b3b1e353 100644
--- a/man7/gitcredentials.7
+++ b/man7/gitcredentials.7
@@ -2,12 +2,12 @@
.\" Title: gitcredentials
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITCREDENTIALS" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITCREDENTIALS" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitcvs-migration.7 b/man7/gitcvs-migration.7
index f8c4fbe09..6f903887d 100644
--- a/man7/gitcvs-migration.7
+++ b/man7/gitcvs-migration.7
@@ -2,12 +2,12 @@
.\" Title: gitcvs-migration
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITCVS\-MIGRATION" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITCVS\-MIGRATION" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitdiffcore.7 b/man7/gitdiffcore.7
index 0b104f09d..566d30c76 100644
--- a/man7/gitdiffcore.7
+++ b/man7/gitdiffcore.7
@@ -2,12 +2,12 @@
.\" Title: gitdiffcore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITDIFFCORE" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITDIFFCORE" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/giteveryday.7 b/man7/giteveryday.7
index 335f67e6c..8957fcfe5 100644
--- a/man7/giteveryday.7
+++ b/man7/giteveryday.7
@@ -2,12 +2,12 @@
.\" Title: giteveryday
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITEVERYDAY" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITEVERYDAY" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitfaq.7 b/man7/gitfaq.7
index f0a0ee264..eac17d8ff 100644
--- a/man7/gitfaq.7
+++ b/man7/gitfaq.7
@@ -2,12 +2,12 @@
.\" Title: gitfaq
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITFAQ" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITFAQ" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitglossary.7 b/man7/gitglossary.7
index 14a0ac3a2..d3cdff631 100644
--- a/man7/gitglossary.7
+++ b/man7/gitglossary.7
@@ -2,12 +2,12 @@
.\" Title: gitglossary
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITGLOSSARY" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITGLOSSARY" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitnamespaces.7 b/man7/gitnamespaces.7
index 55dac768e..16d8ab831 100644
--- a/man7/gitnamespaces.7
+++ b/man7/gitnamespaces.7
@@ -2,12 +2,12 @@
.\" Title: gitnamespaces
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITNAMESPACES" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITNAMESPACES" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitremote-helpers.7 b/man7/gitremote-helpers.7
index c589edbd6..59adb04b1 100644
--- a/man7/gitremote-helpers.7
+++ b/man7/gitremote-helpers.7
@@ -2,12 +2,12 @@
.\" Title: gitremote-helpers
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITREMOTE\-HELPERS" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITREMOTE\-HELPERS" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitrevisions.7 b/man7/gitrevisions.7
index f5a7ca6b0..34a762104 100644
--- a/man7/gitrevisions.7
+++ b/man7/gitrevisions.7
@@ -2,12 +2,12 @@
.\" Title: gitrevisions
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITREVISIONS" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITREVISIONS" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitsubmodules.7 b/man7/gitsubmodules.7
index e21cd4ba5..93a584ea1 100644
--- a/man7/gitsubmodules.7
+++ b/man7/gitsubmodules.7
@@ -2,12 +2,12 @@
.\" Title: gitsubmodules
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITSUBMODULES" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITSUBMODULES" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gittutorial-2.7 b/man7/gittutorial-2.7
index bc87a9aea..cb0f5480f 100644
--- a/man7/gittutorial-2.7
+++ b/man7/gittutorial-2.7
@@ -2,12 +2,12 @@
.\" Title: gittutorial-2
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITTUTORIAL\-2" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITTUTORIAL\-2" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gittutorial.7 b/man7/gittutorial.7
index 08f56b640..0b8c28b77 100644
--- a/man7/gittutorial.7
+++ b/man7/gittutorial.7
@@ -2,12 +2,12 @@
.\" Title: gittutorial
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITTUTORIAL" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITTUTORIAL" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/man7/gitworkflows.7 b/man7/gitworkflows.7
index 2402ee850..95db4d0e7 100644
--- a/man7/gitworkflows.7
+++ b/man7/gitworkflows.7
@@ -2,12 +2,12 @@
.\" Title: gitworkflows
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 08/12/2022
+.\" Date: 08/18/2022
.\" Manual: Git Manual
-.\" Source: Git 2.37.2.324.gafa70145a2
+.\" Source: Git 2.37.2.382.g795ea8776b
.\" Language: English
.\"
-.TH "GITWORKFLOWS" "7" "08/12/2022" "Git 2\&.37\&.2\&.324\&.gafa701" "Git Manual"
+.TH "GITWORKFLOWS" "7" "08/18/2022" "Git 2\&.37\&.2\&.382\&.g795ea8" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------