summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-12-09 17:43:11 -0800
committerJunio C Hamano <gitster@pobox.com>2023-12-09 17:43:11 -0800
commit9c919c74b7fda282913220a8f9af0f70d47a194c (patch)
treeef5a6d931bdfdaed6c82dc6faa0eca37857d0a53
parentcb119ab9d01a5ead330e94756b310ca384219570 (diff)
downloadgit-htmldocs-9c919c74b7fda282913220a8f9af0f70d47a194c.tar.gz
Autogenerated HTML docs for v2.43.0-76-g1a87c
-rw-r--r--MyFirstContribution.html4
-rw-r--r--MyFirstObjectWalk.html4
-rw-r--r--RelNotes/2.44.0.txt43
-rw-r--r--ReviewingGuidelines.html4
-rw-r--r--SubmittingPatches.html4
-rw-r--r--ToolsForGit.html4
-rw-r--r--everyday.html4
-rw-r--r--git-add.html2
-rw-r--r--git-am.html2
-rw-r--r--git-annotate.html2
-rw-r--r--git-apply.html2
-rw-r--r--git-archimport.html2
-rw-r--r--git-archive.html2
-rw-r--r--git-bisect.html2
-rw-r--r--git-blame.html2
-rw-r--r--git-branch.html2
-rw-r--r--git-bugreport.html2
-rw-r--r--git-bundle.html2
-rw-r--r--git-cat-file.html2
-rw-r--r--git-check-attr.html2
-rw-r--r--git-check-ignore.html2
-rw-r--r--git-check-mailmap.html2
-rw-r--r--git-check-ref-format.html2
-rw-r--r--git-checkout-index.html2
-rw-r--r--git-checkout.html2
-rw-r--r--git-cherry-pick.html2
-rw-r--r--git-cherry.html2
-rw-r--r--git-citool.html2
-rw-r--r--git-clean.html2
-rw-r--r--git-clone.html2
-rw-r--r--git-column.html2
-rw-r--r--git-commit-graph.html2
-rw-r--r--git-commit-tree.html2
-rw-r--r--git-commit.html2
-rw-r--r--git-config.html6
-rw-r--r--git-count-objects.html2
-rw-r--r--git-credential-cache--daemon.html2
-rw-r--r--git-credential-cache.html2
-rw-r--r--git-credential-store.html2
-rw-r--r--git-credential.html2
-rw-r--r--git-cvsexportcommit.html2
-rw-r--r--git-cvsimport.html2
-rw-r--r--git-cvsserver.html2
-rw-r--r--git-daemon.html2
-rw-r--r--git-describe.html2
-rw-r--r--git-diagnose.html2
-rw-r--r--git-diff-files.html2
-rw-r--r--git-diff-index.html2
-rw-r--r--git-diff-tree.html2
-rw-r--r--git-diff.html2
-rw-r--r--git-difftool.html2
-rw-r--r--git-fast-export.html2
-rw-r--r--git-fast-import.html2
-rw-r--r--git-fetch-pack.html2
-rw-r--r--git-fetch.html2
-rw-r--r--git-filter-branch.html2
-rw-r--r--git-fmt-merge-msg.html2
-rw-r--r--git-for-each-ref.html23
-rw-r--r--git-for-each-ref.txt23
-rw-r--r--git-for-each-repo.html2
-rw-r--r--git-format-patch.html2
-rw-r--r--git-fsck-objects.html2
-rw-r--r--git-fsck.html2
-rw-r--r--git-fsmonitor--daemon.html2
-rw-r--r--git-gc.html2
-rw-r--r--git-get-tar-commit-id.html2
-rw-r--r--git-grep.html2
-rw-r--r--git-gui.html2
-rw-r--r--git-hash-object.html2
-rw-r--r--git-help.html2
-rw-r--r--git-hook.html2
-rw-r--r--git-http-backend.html2
-rw-r--r--git-http-fetch.html2
-rw-r--r--git-http-push.html2
-rw-r--r--git-imap-send.html2
-rw-r--r--git-index-pack.html2
-rw-r--r--git-init-db.html2
-rw-r--r--git-init.html2
-rw-r--r--git-instaweb.html2
-rw-r--r--git-interpret-trailers.html2
-rw-r--r--git-log.html2
-rw-r--r--git-ls-files.html2
-rw-r--r--git-ls-remote.html2
-rw-r--r--git-ls-tree.html2
-rw-r--r--git-mailinfo.html2
-rw-r--r--git-mailsplit.html2
-rw-r--r--git-maintenance.html2
-rw-r--r--git-merge-base.html2
-rw-r--r--git-merge-file.html2
-rw-r--r--git-merge-index.html2
-rw-r--r--git-merge-one-file.html2
-rw-r--r--git-merge-tree.html2
-rw-r--r--git-merge.html2
-rw-r--r--git-mergetool--lib.html2
-rw-r--r--git-mergetool.html2
-rw-r--r--git-mktag.html2
-rw-r--r--git-mktree.html2
-rw-r--r--git-multi-pack-index.html2
-rw-r--r--git-mv.html2
-rw-r--r--git-name-rev.html2
-rw-r--r--git-notes.html2
-rw-r--r--git-p4.html2
-rw-r--r--git-pack-objects.html2
-rw-r--r--git-pack-redundant.html2
-rw-r--r--git-pack-refs.html2
-rw-r--r--git-patch-id.html2
-rw-r--r--git-prune-packed.html2
-rw-r--r--git-prune.html2
-rw-r--r--git-pull.html2
-rw-r--r--git-push.html2
-rw-r--r--git-quiltimport.html2
-rw-r--r--git-range-diff.html2
-rw-r--r--git-read-tree.html2
-rw-r--r--git-rebase.html40
-rw-r--r--git-rebase.txt34
-rw-r--r--git-receive-pack.html2
-rw-r--r--git-reflog.html2
-rw-r--r--git-remote-ext.html2
-rw-r--r--git-remote-fd.html2
-rw-r--r--git-remote-helpers.html4
-rw-r--r--git-remote.html2
-rw-r--r--git-repack.html2
-rw-r--r--git-replace.html2
-rw-r--r--git-request-pull.html2
-rw-r--r--git-rerere.html2
-rw-r--r--git-reset.html2
-rw-r--r--git-restore.html2
-rw-r--r--git-rev-list.html2
-rw-r--r--git-rev-parse.html2
-rw-r--r--git-revert.html2
-rw-r--r--git-rm.html2
-rw-r--r--git-send-email.html2
-rw-r--r--git-send-pack.html2
-rw-r--r--git-sh-i18n--envsubst.html2
-rw-r--r--git-sh-i18n.html2
-rw-r--r--git-sh-setup.html2
-rw-r--r--git-shell.html2
-rw-r--r--git-shortlog.html2
-rw-r--r--git-show-branch.html2
-rw-r--r--git-show-index.html2
-rw-r--r--git-show-ref.html2
-rw-r--r--git-show.html2
-rw-r--r--git-sparse-checkout.html2
-rw-r--r--git-stage.html2
-rw-r--r--git-stash.html2
-rw-r--r--git-status.html2
-rw-r--r--git-stripspace.html2
-rw-r--r--git-submodule.html2
-rw-r--r--git-svn.html2
-rw-r--r--git-switch.html2
-rw-r--r--git-symbolic-ref.html2
-rw-r--r--git-tag.html2
-rw-r--r--git-unpack-file.html2
-rw-r--r--git-unpack-objects.html2
-rw-r--r--git-update-index.html2
-rw-r--r--git-update-ref.html2
-rw-r--r--git-update-server-info.html2
-rw-r--r--git-upload-archive.html2
-rw-r--r--git-upload-pack.html2
-rw-r--r--git-var.html2
-rw-r--r--git-verify-commit.html2
-rw-r--r--git-verify-pack.html2
-rw-r--r--git-verify-tag.html2
-rw-r--r--git-version.html2
-rw-r--r--git-web--browse.html2
-rw-r--r--git-whatchanged.html2
-rw-r--r--git-worktree.html2
-rw-r--r--git-write-tree.html2
-rw-r--r--git.html2
-rw-r--r--gitattributes.html2
-rw-r--r--gitcli.html2
-rw-r--r--gitcore-tutorial.html2
-rw-r--r--gitcredentials.html2
-rw-r--r--gitcvs-migration.html2
-rw-r--r--gitdiffcore.html2
-rw-r--r--giteveryday.html2
-rw-r--r--gitfaq.html2
-rw-r--r--gitformat-bundle.html2
-rw-r--r--gitformat-chunk.html2
-rw-r--r--gitformat-commit-graph.html2
-rw-r--r--gitformat-index.html2
-rw-r--r--gitformat-pack.html2
-rw-r--r--gitformat-signature.html2
-rw-r--r--gitglossary.html2
-rw-r--r--githooks.html2
-rw-r--r--gitignore.html2
-rw-r--r--gitk.html2
-rw-r--r--gitmailmap.html2
-rw-r--r--gitmodules.html2
-rw-r--r--gitnamespaces.html2
-rw-r--r--gitprotocol-capabilities.html2
-rw-r--r--gitprotocol-common.html2
-rw-r--r--gitprotocol-http.html2
-rw-r--r--gitprotocol-pack.html2
-rw-r--r--gitprotocol-v2.html2
-rw-r--r--gitremote-helpers.html2
-rw-r--r--gitrepository-layout.html2
-rw-r--r--gitrevisions.html2
-rw-r--r--gitsubmodules.html2
-rw-r--r--gittutorial-2.html2
-rw-r--r--gittutorial.html2
-rw-r--r--gitweb.conf.html2
-rw-r--r--gitweb.html2
-rw-r--r--gitworkflows.html2
-rw-r--r--howto/coordinate-embargoed-releases.html2
-rw-r--r--howto/keep-canonical-history-correct.html4
-rw-r--r--howto/maintain-git.html4
-rw-r--r--howto/new-command.html4
-rw-r--r--howto/rebase-from-internal-branch.html4
-rw-r--r--howto/rebuild-from-update-hook.html4
-rw-r--r--howto/recover-corrupted-blob-object.html4
-rw-r--r--howto/recover-corrupted-object-harder.html4
-rw-r--r--howto/revert-a-faulty-merge.html4
-rw-r--r--howto/revert-branch-rebase.html4
-rw-r--r--howto/separating-topic-branches.html4
-rw-r--r--howto/setup-git-server-over-http.html4
-rw-r--r--howto/update-hook-example.html4
-rw-r--r--howto/use-git-daemon.html4
-rw-r--r--howto/using-merge-subtree.html4
-rw-r--r--howto/using-signed-tag-in-pull-request.html4
-rw-r--r--scalar.html2
-rw-r--r--technical/api-error-handling.html4
-rw-r--r--technical/api-index.html4
-rw-r--r--technical/api-merge.html4
-rw-r--r--technical/api-parse-options.html4
-rw-r--r--technical/api-simple-ipc.html4
-rw-r--r--technical/api-trace2.html4
-rw-r--r--technical/bitmap-format.html4
-rw-r--r--technical/bundle-uri.html4
-rw-r--r--technical/hash-function-transition.html4
-rw-r--r--technical/long-running-process-protocol.html4
-rw-r--r--technical/multi-pack-index.html4
-rw-r--r--technical/pack-heuristics.html4
-rw-r--r--technical/parallel-checkout.html4
-rw-r--r--technical/partial-clone.html4
-rw-r--r--technical/racy-git.html4
-rw-r--r--technical/reftable.html2
-rw-r--r--technical/scalar.html4
-rw-r--r--technical/send-pack-pipeline.html4
-rw-r--r--technical/shallow.html4
-rw-r--r--technical/trivial-merge.html4
-rw-r--r--technical/unit-tests.html1216
-rw-r--r--technical/unit-tests.txt240
-rw-r--r--user-manual.html2
244 files changed, 1846 insertions, 333 deletions
diff --git a/MyFirstContribution.html b/MyFirstContribution.html
index 343944b05..d8e32043a 100644
--- a/MyFirstContribution.html
+++ b/MyFirstContribution.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>My First Contribution to the Git Project</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -2097,7 +2097,7 @@ should generate your diffs from <code>&lt;topic&gt;..&lt;mybranch&gt;</code> and
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-07 12:13:08 JST
+ 2023-11-06 19:13:08 PST
</div>
</div>
</body>
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html
index ac258e167..1542cd608 100644
--- a/MyFirstObjectWalk.html
+++ b/MyFirstObjectWalk.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>My First Object Walk</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -1737,7 +1737,7 @@ Changed the display order of the filtered object walk
<div id="footer">
<div id="footer-text">
Last updated
- 2023-07-18 03:51:48 JST
+ 2023-07-17 11:51:48 PDT
</div>
</div>
</body>
diff --git a/RelNotes/2.44.0.txt b/RelNotes/2.44.0.txt
new file mode 100644
index 000000000..6a2bd93c9
--- /dev/null
+++ b/RelNotes/2.44.0.txt
@@ -0,0 +1,43 @@
+Git v2.44 Release Notes
+=======================
+
+UI, Workflows & Features
+
+ * "git add" and "git stash" learned to support the ":(attr:...)"
+ magic pathspec.
+
+ * "git rebase --autosquash" is now enabled for non-interactive rebase,
+ but it is still incompatible with the apply backend.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * Process to add some form of low-level unit tests has started.
+
+ * Add support for GitLab CI.
+
+ * "git for-each-ref --no-sort" still sorted the refs alphabetically
+ which paid non-trivial cost. It has been redefined to show output
+ in an unspecified order, to allow certain optimizations to take
+ advantage of.
+
+
+Fixes since v2.43
+-----------------
+
+ * The way CI testing used "prove" could lead to running the test
+ suite twice needlessly, which has been corrected.
+ (merge e7e03ef995 js/ci-discard-prove-state later to maint).
+
+ * Update ref-related tests.
+
+ * "git format-patch --encode-email-headers" ignored the option when
+ preparing the cover letter, which has been corrected.
+
+ * Newer versions of Getopt::Long started giving warnings against our
+ (ab)use of it in "git send-email". Bump the minimum version
+ requirement for Perl to 5.8.1 (from September 2002) to allow
+ simplifying our implementation.
+ (merge 6ff658cc78 tz/send-email-negatable-options later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html
index 3a90dc2c8..a8a6d0e72 100644
--- a/ReviewingGuidelines.html
+++ b/ReviewingGuidelines.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Reviewing Patches in the Git Project</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -975,7 +975,7 @@ message (after the <code>---</code>) and the beginning of the diff.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/SubmittingPatches.html b/SubmittingPatches.html
index b7f7c8cdd..e3ee3c4ea 100644
--- a/SubmittingPatches.html
+++ b/SubmittingPatches.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Submitting Patches</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -1518,7 +1518,7 @@ this problem around.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:08 JST
+ 2023-11-20 08:57:08 PST
</div>
</div>
</body>
diff --git a/ToolsForGit.html b/ToolsForGit.html
index 6e9b20708..192f53e6f 100644
--- a/ToolsForGit.html
+++ b/ToolsForGit.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Tools for developing Git</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -806,7 +806,7 @@ document can be applied here too.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/everyday.html b/everyday.html
index 58e5f99e8..9d430f95b 100644
--- a/everyday.html
+++ b/everyday.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Everyday Git With 20 Commands Or So</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -751,7 +751,7 @@ link you clicked to get here.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-add.html b/git-add.html
index 7e41b4abe..1514e39e9 100644
--- a/git-add.html
+++ b/git-add.html
@@ -1425,7 +1425,7 @@ add.interactive.useBuiltin
<div id="footer">
<div id="footer-text">
Last updated
- 2023-02-23 08:29:29 JST
+ 2023-02-22 15:29:29 PST
</div>
</div>
</body>
diff --git a/git-am.html b/git-am.html
index c38311c00..6546f3a80 100644
--- a/git-am.html
+++ b/git-am.html
@@ -1289,7 +1289,7 @@ am.threeWay
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-annotate.html b/git-annotate.html
index 3ce050a0c..d38dbe2a2 100644
--- a/git-annotate.html
+++ b/git-annotate.html
@@ -1089,7 +1089,7 @@ take effect.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-apply.html b/git-apply.html
index 06b9dffe9..cf6d549c1 100644
--- a/git-apply.html
+++ b/git-apply.html
@@ -1248,7 +1248,7 @@ subdirectory is checked and (if possible) updated.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-archimport.html b/git-archimport.html
index 74ae5b094..488402165 100644
--- a/git-archimport.html
+++ b/git-archimport.html
@@ -905,7 +905,7 @@ patches that have been traded out-of-sequence between the branches.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-archive.html b/git-archive.html
index 7ad8d45f1..16a1105f9 100644
--- a/git-archive.html
+++ b/git-archive.html
@@ -1159,7 +1159,7 @@ while archiving any tree in your <code>$GIT_DIR/info/attributes</code> file.</p>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-bisect.html b/git-bisect.html
index 4c30d2f5f..f4b649d1e 100644
--- a/git-bisect.html
+++ b/git-bisect.html
@@ -1244,7 +1244,7 @@ help</code> or <code>git bisect -h</code> to get a long usage description.</p></
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-31 15:29:48 JST
+ 2023-10-30 23:29:48 PDT
</div>
</div>
</body>
diff --git a/git-blame.html b/git-blame.html
index af1e0706c..9c0a73b7a 100644
--- a/git-blame.html
+++ b/git-blame.html
@@ -1498,7 +1498,7 @@ blame.markIgnoredLines
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-branch.html b/git-branch.html
index 33c7c65cc..35b0708ea 100644
--- a/git-branch.html
+++ b/git-branch.html
@@ -1592,7 +1592,7 @@ a branch?&#8221;</a> in the Git User&#8217;s Manual.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-bugreport.html b/git-bugreport.html
index 32141e732..280115b7c 100644
--- a/git-bugreport.html
+++ b/git-bugreport.html
@@ -880,7 +880,7 @@ about their usage.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-bundle.html b/git-bundle.html
index 696f2b00b..2c870b953 100644
--- a/git-bundle.html
+++ b/git-bundle.html
@@ -1104,7 +1104,7 @@ references when fetching:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-03-20 07:16:41 JST
+ 2023-03-19 15:16:41 PDT
</div>
</div>
</body>
diff --git a/git-cat-file.html b/git-cat-file.html
index e6bf311b5..21057aacf 100644
--- a/git-cat-file.html
+++ b/git-cat-file.html
@@ -1342,7 +1342,7 @@ will be reported.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-19 05:44:22 JST
+ 2023-10-18 13:44:22 PDT
</div>
</div>
</body>
diff --git a/git-check-attr.html b/git-check-attr.html
index 04b989927..be89417ed 100644
--- a/git-check-attr.html
+++ b/git-check-attr.html
@@ -970,7 +970,7 @@ README: caveat: unspecified</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-check-ignore.html b/git-check-ignore.html
index 4d72e6dc9..344c29e0b 100644
--- a/git-check-ignore.html
+++ b/git-check-ignore.html
@@ -924,7 +924,7 @@ buffer.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-check-mailmap.html b/git-check-mailmap.html
index a45a0bf97..421cbf80b 100644
--- a/git-check-mailmap.html
+++ b/git-check-mailmap.html
@@ -811,7 +811,7 @@ to specify a custom <code>.mailmap</code> target file or object.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-01-26 11:03:13 JST
+ 2021-01-25 18:03:13 PST
</div>
</div>
</body>
diff --git a/git-check-ref-format.html b/git-check-ref-format.html
index 6c92aff00..abcf6ef65 100644
--- a/git-check-ref-format.html
+++ b/git-check-ref-format.html
@@ -963,7 +963,7 @@ Determine the reference name to use for a new branch:
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-checkout-index.html b/git-checkout-index.html
index 313fc64e4..c4c0fd27d 100644
--- a/git-checkout-index.html
+++ b/git-checkout-index.html
@@ -1020,7 +1020,7 @@ into the file <code>.merged-Makefile</code>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-checkout.html b/git-checkout.html
index c9d94da28..d9e0cf9bb 100644
--- a/git-checkout.html
+++ b/git-checkout.html
@@ -1633,7 +1633,7 @@ checkout.thresholdForParallelism
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-cherry-pick.html b/git-cherry-pick.html
index 3b421e89e..353bbfb4f 100644
--- a/git-cherry-pick.html
+++ b/git-cherry-pick.html
@@ -1217,7 +1217,7 @@ try to apply the change introduced by <code>topic^</code> again,
<div id="footer">
<div id="footer-text">
Last updated
- 2023-01-22 10:52:14 JST
+ 2023-01-21 17:52:14 PST
</div>
</div>
</body>
diff --git a/git-cherry.html b/git-cherry.html
index 6f997f85e..2f5665147 100644
--- a/git-cherry.html
+++ b/git-cherry.html
@@ -915,7 +915,7 @@ between <code>base</code> and <code>topic</code>:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-citool.html b/git-citool.html
index 2769f7805..c7530ab18 100644
--- a/git-citool.html
+++ b/git-citool.html
@@ -776,7 +776,7 @@ See <a href="git-gui.html">git-gui(1)</a> for more details.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-clean.html b/git-clean.html
index 504cfc66f..0e947da77 100644
--- a/git-clean.html
+++ b/git-clean.html
@@ -992,7 +992,7 @@ clean.requireForce
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-clone.html b/git-clone.html
index 67194bc86..39b3f6c92 100644
--- a/git-clone.html
+++ b/git-clone.html
@@ -1513,7 +1513,7 @@ clone.filterSubmodules
<div id="footer">
<div id="footer-text">
Last updated
- 2023-04-21 07:18:02 JST
+ 2023-04-20 15:18:02 PDT
</div>
</div>
</body>
diff --git a/git-column.html b/git-column.html
index 812bc8d2a..bf89dcc59 100644
--- a/git-column.html
+++ b/git-column.html
@@ -1015,7 +1015,7 @@ column.tag
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-15 05:23:11 JST
+ 2022-09-14 13:23:11 PDT
</div>
</div>
</body>
diff --git a/git-commit-graph.html b/git-commit-graph.html
index a76d53e72..c7e3188b9 100644
--- a/git-commit-graph.html
+++ b/git-commit-graph.html
@@ -989,7 +989,7 @@ commitGraph.readChangedPaths
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-commit-tree.html b/git-commit-tree.html
index e88f69a9c..39a88be85 100644
--- a/git-commit-tree.html
+++ b/git-commit-tree.html
@@ -1029,7 +1029,7 @@ reversible operation.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-04-25 15:01:58 JST
+ 2020-04-24 23:01:58 PDT
</div>
</div>
</body>
diff --git a/git-commit.html b/git-commit.html
index e60c16063..539622ffc 100644
--- a/git-commit.html
+++ b/git-commit.html
@@ -1840,7 +1840,7 @@ information.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-05 07:43:56 JST
+ 2023-10-04 15:43:56 PDT
</div>
</div>
</body>
diff --git a/git-config.html b/git-config.html
index 217b78084..f79d468ec 100644
--- a/git-config.html
+++ b/git-config.html
@@ -9656,7 +9656,9 @@ rebase.autoSquash
</dt>
<dd>
<p>
- If set to true enable <code>--autosquash</code> option by default.
+ If set to true, enable the <code>--autosquash</code> option of
+ <a href="git-rebase.html">git-rebase(1)</a> by default for interactive mode.
+ This can be overridden with the <code>--no-autosquash</code> option.
</p>
</dd>
<dt class="hdlist1">
@@ -11845,7 +11847,7 @@ looks like</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-09-23 09:04:28 JST
+ 2023-09-22 17:04:28 PDT
</div>
</div>
</body>
diff --git a/git-count-objects.html b/git-count-objects.html
index 5cd64553d..d54a5c898 100644
--- a/git-count-objects.html
+++ b/git-count-objects.html
@@ -815,7 +815,7 @@ Print sizes in human readable format
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-credential-cache--daemon.html b/git-credential-cache--daemon.html
index 35672fcd5..0b7a87414 100644
--- a/git-credential-cache--daemon.html
+++ b/git-credential-cache--daemon.html
@@ -786,7 +786,7 @@ begun listening for clients.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-credential-cache.html b/git-credential-cache.html
index 0ef9e6c77..bfe10c977 100644
--- a/git-credential-cache.html
+++ b/git-credential-cache.html
@@ -845,7 +845,7 @@ variable (this example increases the cache time to 1 hour):</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-credential-store.html b/git-credential-store.html
index 8b01eacd8..c64a1ae50 100644
--- a/git-credential-store.html
+++ b/git-credential-store.html
@@ -882,7 +882,7 @@ for more information.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-credential.html b/git-credential.html
index 614f6b019..ce596fc64 100644
--- a/git-credential.html
+++ b/git-credential.html
@@ -986,7 +986,7 @@ to pass additional information to credential helpers.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-cvsexportcommit.html b/git-cvsexportcommit.html
index 5f2236503..71f742872 100644
--- a/git-cvsexportcommit.html
+++ b/git-cvsexportcommit.html
@@ -951,7 +951,7 @@ $ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-cvsimport.html b/git-cvsimport.html
index 83ecbbe0c..af3a9caee 100644
--- a/git-cvsimport.html
+++ b/git-cvsimport.html
@@ -1107,7 +1107,7 @@ cvs2git (part of cvs2svn), <code>http://subversion.apache.org/</code>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-cvsserver.html b/git-cvsserver.html
index a675dc4ca..a9f96a95b 100644
--- a/git-cvsserver.html
+++ b/git-cvsserver.html
@@ -1327,7 +1327,7 @@ and <code>gitcvs.allBinary</code> to "guess".</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-daemon.html b/git-daemon.html
index f30e5b9ff..5e2fa7ad5 100644
--- a/git-daemon.html
+++ b/git-daemon.html
@@ -1281,7 +1281,7 @@ services are performed.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-describe.html b/git-describe.html
index 144f232ae..43efd6c88 100644
--- a/git-describe.html
+++ b/git-describe.html
@@ -1042,7 +1042,7 @@ tag being favorable.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-diagnose.html b/git-diagnose.html
index 505b40e4c..4fc838819 100644
--- a/git-diagnose.html
+++ b/git-diagnose.html
@@ -858,7 +858,7 @@ Users should exercise caution when sharing an archive generated with
<div id="footer">
<div id="footer-text">
Last updated
- 2022-08-26 07:15:05 JST
+ 2022-08-25 15:15:05 PDT
</div>
</div>
</body>
diff --git a/git-diff-files.html b/git-diff-files.html
index 9077941fe..2c512cf73 100644
--- a/git-diff-files.html
+++ b/git-diff-files.html
@@ -2716,7 +2716,7 @@ the pathname, but if that is <code>NUL</code>, the record will show two paths.</
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-diff-index.html b/git-diff-index.html
index 68865ed7b..238db47ca 100644
--- a/git-diff-index.html
+++ b/git-diff-index.html
@@ -2810,7 +2810,7 @@ always have the special all-zero sha1.</td>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-diff-tree.html b/git-diff-tree.html
index 1fed50f81..54ca361f9 100644
--- a/git-diff-tree.html
+++ b/git-diff-tree.html
@@ -4044,7 +4044,7 @@ the pathname, but if that is <code>NUL</code>, the record will show two paths.</
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-diff.html b/git-diff.html
index e81d8a1f3..34f703e50 100644
--- a/git-diff.html
+++ b/git-diff.html
@@ -3679,7 +3679,7 @@ diff.colorMovedWS
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-difftool.html b/git-difftool.html
index d55bfc48f..62858e6a9 100644
--- a/git-difftool.html
+++ b/git-difftool.html
@@ -1055,7 +1055,7 @@ difftool.guiDefault
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-fast-export.html b/git-fast-export.html
index 5de4830b3..fa7da2179 100644
--- a/git-fast-export.html
+++ b/git-fast-export.html
@@ -1120,7 +1120,7 @@ a tag referencing a tree instead of a commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-fast-import.html b/git-fast-import.html
index ee86b99c8..a7047a374 100644
--- a/git-fast-import.html
+++ b/git-fast-import.html
@@ -2640,7 +2640,7 @@ fastimport.unpackLimit
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-fetch-pack.html b/git-fetch-pack.html
index ae0cb506b..95a4f984f 100644
--- a/git-fetch-pack.html
+++ b/git-fetch-pack.html
@@ -983,7 +983,7 @@ they may alternatively be 40-hex sha1s present on the remote.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-fetch.html b/git-fetch.html
index 18406e8f2..1fdd6118b 100644
--- a/git-fetch.html
+++ b/git-fetch.html
@@ -2237,7 +2237,7 @@ submodule update</code>. This is expected to be fixed in a future Git version.</
<div id="footer">
<div id="footer-text">
Last updated
- 2023-05-16 08:02:03 JST
+ 2023-05-15 16:02:03 PDT
</div>
</div>
</body>
diff --git a/git-filter-branch.html b/git-filter-branch.html
index bb44565f2..73d68b573 100644
--- a/git-filter-branch.html
+++ b/git-filter-branch.html
@@ -1626,7 +1626,7 @@ To top it all off, even when users finally find working commands,
<div id="footer">
<div id="footer-text">
Last updated
- 2020-11-02 15:43:13 JST
+ 2020-11-01 22:43:13 PST
</div>
</div>
</body>
diff --git a/git-fmt-merge-msg.html b/git-fmt-merge-msg.html
index 448dc1fe7..6966f1e8b 100644
--- a/git-fmt-merge-msg.html
+++ b/git-fmt-merge-msg.html
@@ -917,7 +917,7 @@ the "origin" remote.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-01-06 07:13:29 JST
+ 2022-01-05 14:13:29 PST
</div>
</div>
</body>
diff --git a/git-for-each-ref.html b/git-for-each-ref.html
index 6798e1129..a9d5256bc 100644
--- a/git-for-each-ref.html
+++ b/git-for-each-ref.html
@@ -822,18 +822,14 @@ host language allowing their direct evaluation in that language.</p></div>
</dt>
<dd>
<p>
- A string that interpolates <code>%(fieldname)</code> from a ref being shown
- and the object it points at. If <code>fieldname</code>
- is prefixed with an asterisk (<code>*</code>) and the ref points
- at a tag object, use the value for the field in the object
- which the tag object refers to (instead of the field in the tag object).
- When unspecified, <code>&lt;format&gt;</code> defaults to
- <code>%(objectname) SPC %(objecttype) TAB %(refname)</code>.
- It also interpolates <code>%%</code> to <code>%</code>, and <code>%xx</code> where <code>xx</code>
- are hex digits interpolates to character with hex code
- <code>xx</code>; for example <code>%00</code> interpolates to <code>\0</code> (NUL),
- <code>%09</code> to <code>\t</code> (TAB) and <code>%0a</code> to <code>\n</code> (LF).
+ A string that interpolates <code>%(fieldname)</code> from a ref being shown and
+ the object it points at. In addition, the string literal <code>%%</code>
+ renders as <code>%</code> and <code>%xx</code> - where <code>xx</code> are hex digits - renders as
+ the character with hex code <code>xx</code>. For example, <code>%00</code> interpolates to
+ <code>\0</code> (NUL), <code>%09</code> to <code>\t</code> (TAB), and <code>%0a</code> to <code>\n</code> (LF).
</p>
+<div class="paragraph"><p>When unspecified, <code>&lt;format&gt;</code> defaults to <code>%(objectname) SPC %(objecttype)
+TAB %(refname)</code>.</p></div>
</dd>
<dt class="hdlist1">
--color[=&lt;when&gt;]
@@ -1262,6 +1258,9 @@ Fields <code>tree</code> and <code>parent</code> can also be used with modifier
fields will correspond to the appropriate date or name-email-date tuple
from the <code>committer</code> or <code>tagger</code> fields depending on the object type.
These are intended for working on a mix of annotated and lightweight tags.</p></div>
+<div class="paragraph"><p>For tag objects, a <code>fieldname</code> prefixed with an asterisk (<code>*</code>) expands to
+the <code>fieldname</code> value of the peeled object, rather than that of the tag
+object itself.</p></div>
<div class="paragraph"><p>Fields that have name-email-date tuple as its value (<code>author</code>,
<code>committer</code>, and <code>tagger</code>) can be suffixed with <code>name</code>, <code>email</code>,
and <code>date</code> to extract the named component. For email fields (<code>authoremail</code>,
@@ -1498,7 +1497,7 @@ commits and from none of the <code>--no-merged</code> commits are shown.</p></di
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-05 07:43:56 JST
+ 2023-12-09 17:40:53 PST
</div>
</div>
</body>
diff --git a/git-for-each-ref.txt b/git-for-each-ref.txt
index e86d5700d..be9543f68 100644
--- a/git-for-each-ref.txt
+++ b/git-for-each-ref.txt
@@ -51,17 +51,14 @@ OPTIONS
key.
--format=<format>::
- A string that interpolates `%(fieldname)` from a ref being shown
- and the object it points at. If `fieldname`
- is prefixed with an asterisk (`*`) and the ref points
- at a tag object, use the value for the field in the object
- which the tag object refers to (instead of the field in the tag object).
- When unspecified, `<format>` defaults to
- `%(objectname) SPC %(objecttype) TAB %(refname)`.
- It also interpolates `%%` to `%`, and `%xx` where `xx`
- are hex digits interpolates to character with hex code
- `xx`; for example `%00` interpolates to `\0` (NUL),
- `%09` to `\t` (TAB) and `%0a` to `\n` (LF).
+ A string that interpolates `%(fieldname)` from a ref being shown and
+ the object it points at. In addition, the string literal `%%`
+ renders as `%` and `%xx` - where `xx` are hex digits - renders as
+ the character with hex code `xx`. For example, `%00` interpolates to
+ `\0` (NUL), `%09` to `\t` (TAB), and `%0a` to `\n` (LF).
++
+When unspecified, `<format>` defaults to `%(objectname) SPC %(objecttype)
+TAB %(refname)`.
--color[=<when>]::
Respect any colors specified in the `--format` option. The
@@ -298,6 +295,10 @@ fields will correspond to the appropriate date or name-email-date tuple
from the `committer` or `tagger` fields depending on the object type.
These are intended for working on a mix of annotated and lightweight tags.
+For tag objects, a `fieldname` prefixed with an asterisk (`*`) expands to
+the `fieldname` value of the peeled object, rather than that of the tag
+object itself.
+
Fields that have name-email-date tuple as its value (`author`,
`committer`, and `tagger`) can be suffixed with `name`, `email`,
and `date` to extract the named component. For email fields (`authoremail`,
diff --git a/git-for-each-repo.html b/git-for-each-repo.html
index 4ee705935..1b269897a 100644
--- a/git-for-each-repo.html
+++ b/git-for-each-repo.html
@@ -812,7 +812,7 @@ descriptors <code>stdin</code>, <code>stdout</code>, and <code>stderr</code>.</p
<div id="footer">
<div id="footer-text">
Last updated
- 2020-11-21 15:32:32 JST
+ 2020-11-20 22:32:32 PST
</div>
</div>
</body>
diff --git a/git-format-patch.html b/git-format-patch.html
index 01b19426c..d2e154ad0 100644
--- a/git-format-patch.html
+++ b/git-format-patch.html
@@ -2618,7 +2618,7 @@ merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-fsck-objects.html b/git-fsck-objects.html
index 61b56b38b..661817647 100644
--- a/git-fsck-objects.html
+++ b/git-fsck-objects.html
@@ -772,7 +772,7 @@ documentation of that command.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-fsck.html b/git-fsck.html
index a7999a74b..148c3b9c8 100644
--- a/git-fsck.html
+++ b/git-fsck.html
@@ -1591,7 +1591,7 @@ GIT_ALTERNATE_OBJECT_DIRECTORIES
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-fsmonitor--daemon.html b/git-fsmonitor--daemon.html
index 7976b2624..d04cb8e67 100644
--- a/git-fsmonitor--daemon.html
+++ b/git-fsmonitor--daemon.html
@@ -900,7 +900,7 @@ fsmonitor.socketDir
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-gc.html b/git-gc.html
index c22b1447e..cc259c1f9 100644
--- a/git-gc.html
+++ b/git-gc.html
@@ -1257,7 +1257,7 @@ seems to be low in practice).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-19 05:44:22 JST
+ 2023-10-18 13:44:22 PDT
</div>
</div>
</body>
diff --git a/git-get-tar-commit-id.html b/git-get-tar-commit-id.html
index c79954be1..fe994802b 100644
--- a/git-get-tar-commit-id.html
+++ b/git-get-tar-commit-id.html
@@ -778,7 +778,7 @@ a tree ID instead of a commit ID or tag.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-grep.html b/git-grep.html
index ee052fc0d..7ab380ca1 100644
--- a/git-grep.html
+++ b/git-grep.html
@@ -1489,7 +1489,7 @@ grep.fallbackToNoIndex
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-gui.html b/git-gui.html
index fbaad6363..d297f8836 100644
--- a/git-gui.html
+++ b/git-gui.html
@@ -945,7 +945,7 @@ of end users.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-hash-object.html b/git-hash-object.html
index c5edeb14e..b55804565 100644
--- a/git-hash-object.html
+++ b/git-hash-object.html
@@ -855,7 +855,7 @@ When &lt;type&gt; is not specified, it defaults to "blob".</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-help.html b/git-help.html
index d2102ac14..1fd38ca06 100644
--- a/git-help.html
+++ b/git-help.html
@@ -1056,7 +1056,7 @@ See <a href="git-config.html">git-config(1)</a> for more information about this.
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-hook.html b/git-hook.html
index dae55250f..5068e5a84 100644
--- a/git-hook.html
+++ b/git-hook.html
@@ -824,7 +824,7 @@ mandatory <code>--</code> (or <code>--end-of-options</code>, see <a href="gitcli
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-http-backend.html b/git-http-backend.html
index f020c8da9..a0fb2b867 100644
--- a/git-http-backend.html
+++ b/git-http-backend.html
@@ -1102,7 +1102,7 @@ invoked by the <em>git-receive-pack</em>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-http-fetch.html b/git-http-fetch.html
index 273318021..0ab1d00fc 100644
--- a/git-http-fetch.html
+++ b/git-http-fetch.html
@@ -860,7 +860,7 @@ commit-id
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-http-push.html b/git-http-push.html
index 2e1f9f7df..cf2c85562 100644
--- a/git-http-push.html
+++ b/git-http-push.html
@@ -908,7 +908,7 @@ to disable the fast-forward check only on that ref.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-imap-send.html b/git-imap-send.html
index 6611ce209..959a11ecc 100644
--- a/git-imap-send.html
+++ b/git-imap-send.html
@@ -1028,7 +1028,7 @@ users may wish to visit this web page for more information:
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-15 05:23:11 JST
+ 2022-09-14 13:23:11 PDT
</div>
</div>
</body>
diff --git a/git-index-pack.html b/git-index-pack.html
index 2488ac732..5555f40fc 100644
--- a/git-index-pack.html
+++ b/git-index-pack.html
@@ -985,7 +985,7 @@ mentioned above.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-init-db.html b/git-init-db.html
index a9ff2fc0a..407cb0782 100644
--- a/git-init-db.html
+++ b/git-init-db.html
@@ -772,7 +772,7 @@ documentation of that command.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-init.html b/git-init.html
index e98713a34..976b0805c 100644
--- a/git-init.html
+++ b/git-init.html
@@ -1038,7 +1038,7 @@ init.defaultBranch
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-instaweb.html b/git-instaweb.html
index f0e88934b..23f6e050a 100644
--- a/git-instaweb.html
+++ b/git-instaweb.html
@@ -907,7 +907,7 @@ restart
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-interpret-trailers.html b/git-interpret-trailers.html
index 4b3fce64d..32ee9a6d0 100644
--- a/git-interpret-trailers.html
+++ b/git-interpret-trailers.html
@@ -1393,7 +1393,7 @@ $ chmod +x .git/hooks/commit-msg</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-14 07:25:25 JST
+ 2023-10-13 15:25:25 PDT
</div>
</div>
</body>
diff --git a/git-log.html b/git-log.html
index 7c4387939..bdf1a1aa2 100644
--- a/git-log.html
+++ b/git-log.html
@@ -5666,7 +5666,7 @@ See <code>notes.rewrite.&lt;command&gt;</code> above for a further description o
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-ls-files.html b/git-ls-files.html
index 9eeb49905..8c908bc5c 100644
--- a/git-ls-files.html
+++ b/git-ls-files.html
@@ -1382,7 +1382,7 @@ pattern file appears in.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-ls-remote.html b/git-ls-remote.html
index 3391bd962..90781ddd3 100644
--- a/git-ls-remote.html
+++ b/git-ls-remote.html
@@ -987,7 +987,7 @@ d4ca2e3147b409459955613c152220f4db848ee1 refs/tags/v2.40.0
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-14 05:57:42 JST
+ 2023-06-13 13:57:42 PDT
</div>
</div>
</body>
diff --git a/git-ls-tree.html b/git-ls-tree.html
index 5d8318607..e20b965a0 100644
--- a/git-ls-tree.html
+++ b/git-ls-tree.html
@@ -1028,7 +1028,7 @@ path
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-mailinfo.html b/git-mailinfo.html
index 78995ecdd..749f046ff 100644
--- a/git-mailinfo.html
+++ b/git-mailinfo.html
@@ -972,7 +972,7 @@ mailinfo.scissors
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-15 05:23:11 JST
+ 2022-09-14 13:23:11 PDT
</div>
</div>
</body>
diff --git a/git-mailsplit.html b/git-mailsplit.html
index 939aaef0c..5f1c2dba5 100644
--- a/git-mailsplit.html
+++ b/git-mailsplit.html
@@ -860,7 +860,7 @@ patches in the correct order.</td>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-maintenance.html b/git-maintenance.html
index dfe43f1e0..5f0816780 100644
--- a/git-maintenance.html
+++ b/git-maintenance.html
@@ -1359,7 +1359,7 @@ maintenance.incremental-repack.auto
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-merge-base.html b/git-merge-base.html
index e2a1dc39b..e86337efa 100644
--- a/git-merge-base.html
+++ b/git-merge-base.html
@@ -1017,7 +1017,7 @@ commits that used to be at the tip of origin/master).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-merge-file.html b/git-merge-file.html
index eb821bc5d..ab5fed58c 100644
--- a/git-merge-file.html
+++ b/git-merge-file.html
@@ -919,7 +919,7 @@ object store and the object ID of its blob is written to standard output.</p></d
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-09 02:04:31 JST
+ 2023-11-08 09:04:31 PST
</div>
</div>
</body>
diff --git a/git-merge-index.html b/git-merge-index.html
index d4128b431..2cedbc821 100644
--- a/git-merge-index.html
+++ b/git-merge-index.html
@@ -852,7 +852,7 @@ for the AA file, because it didn&#8217;t exist in the original, and thus
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-merge-one-file.html b/git-merge-one-file.html
index 907a4010f..1c961f491 100644
--- a/git-merge-one-file.html
+++ b/git-merge-one-file.html
@@ -772,7 +772,7 @@ to resolve a merge after the trivial merge done with <em>git read-tree -m</em>.<
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-merge-tree.html b/git-merge-tree.html
index b46a76301..a429f6aea 100644
--- a/git-merge-tree.html
+++ b/git-merge-tree.html
@@ -1152,7 +1152,7 @@ large repositories).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-merge.html b/git-merge.html
index f4d79c058..d5dda7ff8 100644
--- a/git-merge.html
+++ b/git-merge.html
@@ -2336,7 +2336,7 @@ merge.&lt;driver&gt;.recursive
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-mergetool--lib.html b/git-mergetool--lib.html
index 7f04aab63..6f4780f83 100644
--- a/git-mergetool--lib.html
+++ b/git-mergetool--lib.html
@@ -832,7 +832,7 @@ run_merge_tool
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-mergetool.html b/git-mergetool.html
index b1cffd26d..8c8886e54 100644
--- a/git-mergetool.html
+++ b/git-mergetool.html
@@ -1342,7 +1342,7 @@ MERGED and REMOTE).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-mktag.html b/git-mktag.html
index 2767aa6d2..037c05c81 100644
--- a/git-mktag.html
+++ b/git-mktag.html
@@ -828,7 +828,7 @@ care about, but that can be verified with gpg.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-mktree.html b/git-mktree.html
index 2aa6e0480..1bb98f72d 100644
--- a/git-mktree.html
+++ b/git-mktree.html
@@ -811,7 +811,7 @@ built is written to the standard output.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-multi-pack-index.html b/git-multi-pack-index.html
index 8e0a906df..db7631bb8 100644
--- a/git-multi-pack-index.html
+++ b/git-multi-pack-index.html
@@ -958,7 +958,7 @@ multi-pack-index feature and its file format.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-11 06:40:17 JST
+ 2022-10-10 14:40:17 PDT
</div>
</div>
</body>
diff --git a/git-mv.html b/git-mv.html
index ced14c8b3..e928ca73e 100644
--- a/git-mv.html
+++ b/git-mv.html
@@ -857,7 +857,7 @@ been implemented.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-name-rev.html b/git-name-rev.html
index 9f83873af..74e35afab 100644
--- a/git-name-rev.html
+++ b/git-name-rev.html
@@ -903,7 +903,7 @@ not the context.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-notes.html b/git-notes.html
index 689a7b6f9..849ec4c76 100644
--- a/git-notes.html
+++ b/git-notes.html
@@ -1396,7 +1396,7 @@ on the <code>notes.rewrite.&lt;command&gt;</code> and <code>notes.rewriteRef</co
<div id="footer">
<div id="footer-text">
Last updated
- 2023-08-18 09:18:11 JST
+ 2023-08-17 17:18:11 PDT
</div>
</div>
</body>
diff --git a/git-p4.html b/git-p4.html
index ee0d4df6e..ed16cfbd7 100644
--- a/git-p4.html
+++ b/git-p4.html
@@ -1974,7 +1974,7 @@ Each commit imported by <em>git p4</em> has a line at the end of the log
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-21 09:49:41 JST
+ 2022-05-20 17:49:41 PDT
</div>
</div>
</body>
diff --git a/git-pack-objects.html b/git-pack-objects.html
index 5b737819a..f5cc212ff 100644
--- a/git-pack-objects.html
+++ b/git-pack-objects.html
@@ -1388,7 +1388,7 @@ attribute <code>delta</code> set to false.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-11 03:55:22 JST
+ 2023-10-10 11:55:22 PDT
</div>
</div>
</body>
diff --git a/git-pack-redundant.html b/git-pack-redundant.html
index e0002ac5d..92bfb27ba 100644
--- a/git-pack-redundant.html
+++ b/git-pack-redundant.html
@@ -834,7 +834,7 @@ git pack-redundant --all | xargs rm</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-04-07 05:56:57 JST
+ 2023-04-06 13:56:57 PDT
</div>
</div>
</body>
diff --git a/git-pack-refs.html b/git-pack-refs.html
index d403b921b..851b6de27 100644
--- a/git-pack-refs.html
+++ b/git-pack-refs.html
@@ -860,7 +860,7 @@ exists" when it means "branch &lt;branch&gt; exists".</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-14 05:57:42 JST
+ 2023-06-13 13:57:42 PDT
</div>
</div>
</body>
diff --git a/git-patch-id.html b/git-patch-id.html
index 47b008913..2ce031a5b 100644
--- a/git-patch-id.html
+++ b/git-patch-id.html
@@ -855,7 +855,7 @@ All whitespace within the patch is ignored and does not affect the id.
<div id="footer">
<div id="footer-text">
Last updated
- 2022-11-05 13:49:36 JST
+ 2022-11-04 21:49:36 PDT
</div>
</div>
</body>
diff --git a/git-prune-packed.html b/git-prune-packed.html
index eca33d4b5..3726c82db 100644
--- a/git-prune-packed.html
+++ b/git-prune-packed.html
@@ -814,7 +814,7 @@ disk storage, etc.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-prune.html b/git-prune.html
index 81142d2c8..cdc99c623 100644
--- a/git-prune.html
+++ b/git-prune.html
@@ -884,7 +884,7 @@ many other housekeeping tasks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-pull.html b/git-pull.html
index 5e8b36c77..c32ec00f8 100644
--- a/git-pull.html
+++ b/git-pull.html
@@ -2314,7 +2314,7 @@ version.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-10-19 09:00:13 JST
+ 2021-10-18 17:00:13 PDT
</div>
</div>
</body>
diff --git a/git-push.html b/git-push.html
index fa0be5f05..1aeffea37 100644
--- a/git-push.html
+++ b/git-push.html
@@ -2181,7 +2181,7 @@ push.useBitmaps
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-quiltimport.html b/git-quiltimport.html
index 0b629e6f7..ea022dc54 100644
--- a/git-quiltimport.html
+++ b/git-quiltimport.html
@@ -841,7 +841,7 @@ variable.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-range-diff.html b/git-range-diff.html
index 2a75d031f..47321c984 100644
--- a/git-range-diff.html
+++ b/git-range-diff.html
@@ -1085,7 +1085,7 @@ found in this case will look like this:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-read-tree.html b/git-read-tree.html
index 1bbe705c6..1968d7e86 100644
--- a/git-read-tree.html
+++ b/git-read-tree.html
@@ -1294,7 +1294,7 @@ support.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-rebase.html b/git-rebase.html
index a3a44f0e5..dc91f9f38 100644
--- a/git-rebase.html
+++ b/git-rebase.html
@@ -1545,21 +1545,25 @@ without an explicit <code>--interactive</code>.</p></div>
</dt>
<dd>
<p>
- When the commit log message begins with "squash! &#8230;" or "fixup! &#8230;"
- or "amend! &#8230;", and there is already a commit in the todo list that
- matches the same <code>...</code>, automatically modify the todo list of
- <code>rebase -i</code>, so that the commit marked for squashing comes right after
- the commit to be modified, and change the action of the moved commit
- from <code>pick</code> to <code>squash</code> or <code>fixup</code> or <code>fixup -C</code> respectively. A commit
- matches the <code>...</code> if the commit subject matches, or if the <code>...</code> refers
- to the commit&#8217;s hash. As a fall-back, partial matches of the commit
- subject work, too. The recommended way to create fixup/amend/squash
- commits is by using the <code>--fixup</code>, <code>--fixup=amend:</code> or <code>--fixup=reword:</code>
- and <code>--squash</code> options respectively of <a href="git-commit.html">git-commit(1)</a>.
-</p>
-<div class="paragraph"><p>If the <code>--autosquash</code> option is enabled by default using the
-configuration variable <code>rebase.autoSquash</code>, this option can be
-used to override and disable this setting.</p></div>
+ Automatically squash commits with specially formatted messages into
+ previous commits being rebased. If a commit message starts with
+ "squash! ", "fixup! " or "amend! ", the remainder of the subject line
+ is taken as a commit specifier, which matches a previous commit if it
+ matches the subject line or the hash of that commit. If no commit
+ matches fully, matches of the specifier with the start of commit
+ subjects are considered.
+</p>
+<div class="paragraph"><p>In the rebase todo list, the actions of squash, fixup and amend commits are
+changed from <code>pick</code> to <code>squash</code>, <code>fixup</code> or <code>fixup -C</code>, respectively, and they
+are moved right after the commit they modify. The <code>--interactive</code> option can
+be used to review and edit the todo list before proceeding.</p></div>
+<div class="paragraph"><p>The recommended way to create commits with squash markers is by using the
+<code>--squash</code>, <code>--fixup</code>, <code>--fixup=amend:</code> or <code>--fixup=reword:</code> options of
+<a href="git-commit.html">git-commit(1)</a>, which take the target commit as an argument and
+automatically fill in the subject line of the new commit from that.</p></div>
+<div class="paragraph"><p>Settting configuration variable <code>rebase.autoSquash</code> to true enables
+auto-squashing by default for interactive rebase. The <code>--no-autosquash</code>
+option can be used to override that setting.</p></div>
<div class="paragraph"><p>See also INCOMPATIBLE OPTIONS below.</p></div>
</dd>
<dt class="hdlist1">
@@ -2659,7 +2663,9 @@ rebase.autoSquash
</dt>
<dd>
<p>
- If set to true enable <code>--autosquash</code> option by default.
+ If set to true, enable the <code>--autosquash</code> option of
+ <a href="git-rebase.html">git-rebase(1)</a> by default for interactive mode.
+ This can be overridden with the <code>--no-autosquash</code> option.
</p>
</dd>
<dt class="hdlist1">
@@ -2803,7 +2809,7 @@ sequence.editor
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-07 12:13:08 JST
+ 2023-12-09 17:40:53 PST
</div>
</div>
</body>
diff --git a/git-rebase.txt b/git-rebase.txt
index b4526ca24..1dd6555f6 100644
--- a/git-rebase.txt
+++ b/git-rebase.txt
@@ -589,21 +589,27 @@ See also INCOMPATIBLE OPTIONS below.
--autosquash::
--no-autosquash::
- When the commit log message begins with "squash! ..." or "fixup! ..."
- or "amend! ...", and there is already a commit in the todo list that
- matches the same `...`, automatically modify the todo list of
- `rebase -i`, so that the commit marked for squashing comes right after
- the commit to be modified, and change the action of the moved commit
- from `pick` to `squash` or `fixup` or `fixup -C` respectively. A commit
- matches the `...` if the commit subject matches, or if the `...` refers
- to the commit's hash. As a fall-back, partial matches of the commit
- subject work, too. The recommended way to create fixup/amend/squash
- commits is by using the `--fixup`, `--fixup=amend:` or `--fixup=reword:`
- and `--squash` options respectively of linkgit:git-commit[1].
+ Automatically squash commits with specially formatted messages into
+ previous commits being rebased. If a commit message starts with
+ "squash! ", "fixup! " or "amend! ", the remainder of the subject line
+ is taken as a commit specifier, which matches a previous commit if it
+ matches the subject line or the hash of that commit. If no commit
+ matches fully, matches of the specifier with the start of commit
+ subjects are considered.
+
-If the `--autosquash` option is enabled by default using the
-configuration variable `rebase.autoSquash`, this option can be
-used to override and disable this setting.
+In the rebase todo list, the actions of squash, fixup and amend commits are
+changed from `pick` to `squash`, `fixup` or `fixup -C`, respectively, and they
+are moved right after the commit they modify. The `--interactive` option can
+be used to review and edit the todo list before proceeding.
++
+The recommended way to create commits with squash markers is by using the
+`--squash`, `--fixup`, `--fixup=amend:` or `--fixup=reword:` options of
+linkgit:git-commit[1], which take the target commit as an argument and
+automatically fill in the subject line of the new commit from that.
++
+Settting configuration variable `rebase.autoSquash` to true enables
+auto-squashing by default for interactive rebase. The `--no-autosquash`
+option can be used to override that setting.
+
See also INCOMPATIBLE OPTIONS below.
diff --git a/git-receive-pack.html b/git-receive-pack.html
index 69620116b..25bc415f1 100644
--- a/git-receive-pack.html
+++ b/git-receive-pack.html
@@ -1094,7 +1094,7 @@ The <code>pre-receive</code> hook MUST NOT update any refs to point to
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-reflog.html b/git-reflog.html
index 82cafdf9a..a6265b239 100644
--- a/git-reflog.html
+++ b/git-reflog.html
@@ -925,7 +925,7 @@ used with <code>expire</code>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-remote-ext.html b/git-remote-ext.html
index ad6862a75..7c6850d48 100644
--- a/git-remote-ext.html
+++ b/git-remote-ext.html
@@ -963,7 +963,7 @@ begins with <code>ext::</code>. Examples:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-remote-fd.html b/git-remote-fd.html
index e95aa67fc..3bfe8eca3 100644
--- a/git-remote-fd.html
+++ b/git-remote-fd.html
@@ -843,7 +843,7 @@ GIT_TRANSLOOP_DEBUG
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-remote-helpers.html b/git-remote-helpers.html
index bb9430815..4ee301748 100644
--- a/git-remote-helpers.html
+++ b/git-remote-helpers.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>git-remote-helpers</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -751,7 +751,7 @@ link you clicked to get here.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-remote.html b/git-remote.html
index dc22f9c8a..9f04749ff 100644
--- a/git-remote.html
+++ b/git-remote.html
@@ -1057,7 +1057,7 @@ $ git merge origin</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-27 08:11:01 JST
+ 2022-05-26 16:11:01 PDT
</div>
</div>
</body>
diff --git a/git-repack.html b/git-repack.html
index 6f3f08baf..ff848c396 100644
--- a/git-repack.html
+++ b/git-repack.html
@@ -1169,7 +1169,7 @@ attribute <code>delta</code> set to false.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-replace.html b/git-replace.html
index e4a53890b..a61a62620 100644
--- a/git-replace.html
+++ b/git-replace.html
@@ -971,7 +971,7 @@ pending objects.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-request-pull.html b/git-request-pull.html
index 7b116a7f0..058ee0c84 100644
--- a/git-request-pull.html
+++ b/git-request-pull.html
@@ -855,7 +855,7 @@ the one you have locally, e.g.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-rerere.html b/git-rerere.html
index bd49b4712..335515835 100644
--- a/git-rerere.html
+++ b/git-rerere.html
@@ -990,7 +990,7 @@ setting in <a href="gitattributes.html">gitattributes(5)</a> can be used.</p></d
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-reset.html b/git-reset.html
index fb99c427b..0dfcc3530 100644
--- a/git-reset.html
+++ b/git-reset.html
@@ -1507,7 +1507,7 @@ entries:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-01-22 10:52:14 JST
+ 2023-01-21 17:52:14 PST
</div>
</div>
</body>
diff --git a/git-restore.html b/git-restore.html
index b9ef32fe0..04efbff66 100644
--- a/git-restore.html
+++ b/git-restore.html
@@ -1077,7 +1077,7 @@ as using <a href="git-checkout.html">git-checkout(1)</a>)</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-rev-list.html b/git-rev-list.html
index 51789a417..6d5a95367 100644
--- a/git-rev-list.html
+++ b/git-rev-list.html
@@ -3770,7 +3770,7 @@ Compare the on-disk size of branches in one group of refs, excluding
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-rev-parse.html b/git-rev-parse.html
index 6aca71679..01238dcc4 100644
--- a/git-rev-parse.html
+++ b/git-rev-parse.html
@@ -2151,7 +2151,7 @@ Similar to above:
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-revert.html b/git-revert.html
index 842cfa289..ad8b3d8de 100644
--- a/git-revert.html
+++ b/git-revert.html
@@ -1070,7 +1070,7 @@ revert.reference
<div id="footer">
<div id="footer-text">
Last updated
- 2023-09-15 03:18:26 JST
+ 2023-09-14 11:18:26 PDT
</div>
</div>
</body>
diff --git a/git-rm.html b/git-rm.html
index 6b07f8688..ac15f874b 100644
--- a/git-rm.html
+++ b/git-rm.html
@@ -1033,7 +1033,7 @@ obsolete when recursive submodule update has been implemented.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-send-email.html b/git-send-email.html
index 05ab8cc50..c32eabb54 100644
--- a/git-send-email.html
+++ b/git-send-email.html
@@ -1834,7 +1834,7 @@ Authen::SASL and Mail::Address.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/git-send-pack.html b/git-send-pack.html
index e220938b6..7fe9e63d2 100644
--- a/git-send-pack.html
+++ b/git-send-pack.html
@@ -994,7 +994,7 @@ to disable the fast-forward check only on that ref.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-sh-i18n--envsubst.html b/git-sh-i18n--envsubst.html
index a5b9dc097..1aefa501c 100644
--- a/git-sh-i18n--envsubst.html
+++ b/git-sh-i18n--envsubst.html
@@ -785,7 +785,7 @@ of Git. Don&#8217;t use it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-sh-i18n.html b/git-sh-i18n.html
index 80a63de30..b66da6e91 100644
--- a/git-sh-i18n.html
+++ b/git-sh-i18n.html
@@ -807,7 +807,7 @@ eval_gettext
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-sh-setup.html b/git-sh-setup.html
index 4d5cb1d74..5ebb9ea7a 100644
--- a/git-sh-setup.html
+++ b/git-sh-setup.html
@@ -902,7 +902,7 @@ create_virtual_base
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-shell.html b/git-shell.html
index 675ea2d8f..8f46133c2 100644
--- a/git-shell.html
+++ b/git-shell.html
@@ -873,7 +873,7 @@ contrib/git-shell-commands/README</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-shortlog.html b/git-shortlog.html
index 1ac89a3ad..d3d2b1421 100644
--- a/git-shortlog.html
+++ b/git-shortlog.html
@@ -2037,7 +2037,7 @@ the current directory.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-11-05 13:49:36 JST
+ 2022-11-04 21:49:36 PDT
</div>
</div>
</body>
diff --git a/git-show-branch.html b/git-show-branch.html
index a9fdaaed7..d25943de9 100644
--- a/git-show-branch.html
+++ b/git-show-branch.html
@@ -1065,7 +1065,7 @@ showBranch.default
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-show-index.html b/git-show-index.html
index 6e2f2fc7f..4e2a48cde 100644
--- a/git-show-index.html
+++ b/git-show-index.html
@@ -826,7 +826,7 @@ without data loss.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-08-26 02:44:55 JST
+ 2020-08-25 10:44:55 PDT
</div>
</div>
</body>
diff --git a/git-show-ref.html b/git-show-ref.html
index d66f9c56a..2fac233e2 100644
--- a/git-show-ref.html
+++ b/git-show-ref.html
@@ -1004,7 +1004,7 @@ flag, so you can do</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-09 02:04:31 JST
+ 2023-11-08 09:04:31 PST
</div>
</div>
</body>
diff --git a/git-show.html b/git-show.html
index 80b3fd1a4..3c83e4a7a 100644
--- a/git-show.html
+++ b/git-show.html
@@ -3829,7 +3829,7 @@ reversible operation.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-sparse-checkout.html b/git-sparse-checkout.html
index d8e1c5765..56f600cc5 100644
--- a/git-sparse-checkout.html
+++ b/git-sparse-checkout.html
@@ -1312,7 +1312,7 @@ of these restrictions.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-stage.html b/git-stage.html
index e401cd67b..204ae39df 100644
--- a/git-stage.html
+++ b/git-stage.html
@@ -772,7 +772,7 @@ documentation of that command.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-stash.html b/git-stash.html
index bd4c53846..226e7ac6e 100644
--- a/git-stash.html
+++ b/git-stash.html
@@ -1327,7 +1327,7 @@ stash.showStat
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-24 05:24:09 JST
+ 2023-06-23 13:24:09 PDT
</div>
</div>
</body>
diff --git a/git-status.html b/git-status.html
index eec1c149d..829aa59e3 100644
--- a/git-status.html
+++ b/git-status.html
@@ -1464,7 +1464,7 @@ normal.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-stripspace.html b/git-stripspace.html
index 1d2eedc2a..5a54c830b 100644
--- a/git-stripspace.html
+++ b/git-stripspace.html
@@ -876,7 +876,7 @@ the repository.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-submodule.html b/git-submodule.html
index 460a20453..5ca592e05 100644
--- a/git-submodule.html
+++ b/git-submodule.html
@@ -1416,7 +1416,7 @@ for details.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-08-05 04:03:14 JST
+ 2023-08-04 12:03:14 PDT
</div>
</div>
</body>
diff --git a/git-svn.html b/git-svn.html
index b52b294c8..26baae2bd 100644
--- a/git-svn.html
+++ b/git-svn.html
@@ -2514,7 +2514,7 @@ and imports all SVN tags as branches, prefixing the tag name with <em>tags/</em>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-switch.html b/git-switch.html
index 94213c668..1f9277ff2 100644
--- a/git-switch.html
+++ b/git-switch.html
@@ -1199,7 +1199,7 @@ checkout.thresholdForParallelism
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-15 05:23:11 JST
+ 2022-09-14 13:23:11 PDT
</div>
</div>
</body>
diff --git a/git-symbolic-ref.html b/git-symbolic-ref.html
index a0aae080c..0e2558780 100644
--- a/git-symbolic-ref.html
+++ b/git-symbolic-ref.html
@@ -863,7 +863,7 @@ name is not a symbolic ref, or 128 if another error occurs.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-tag.html b/git-tag.html
index 7e260c50a..59571e6cf 100644
--- a/git-tag.html
+++ b/git-tag.html
@@ -1367,7 +1367,7 @@ commits and from none of the <code>--no-merged</code> commits are shown.</p></di
<div id="footer">
<div id="footer-text">
Last updated
- 2023-06-14 05:57:42 JST
+ 2023-06-13 13:57:42 PDT
</div>
</div>
</body>
diff --git a/git-unpack-file.html b/git-unpack-file.html
index 601312ad5..4e058a94d 100644
--- a/git-unpack-file.html
+++ b/git-unpack-file.html
@@ -788,7 +788,7 @@ returns the name of the temporary file in the following format:
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-unpack-objects.html b/git-unpack-objects.html
index c96452ff1..da0e9a997 100644
--- a/git-unpack-objects.html
+++ b/git-unpack-objects.html
@@ -830,7 +830,7 @@ new packs and replace existing ones.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git-update-index.html b/git-update-index.html
index 7f04846dd..07d2ca98c 100644
--- a/git-update-index.html
+++ b/git-update-index.html
@@ -1557,7 +1557,7 @@ automatically.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-update-ref.html b/git-update-ref.html
index 861fbc652..6a2c094ee 100644
--- a/git-update-ref.html
+++ b/git-update-ref.html
@@ -974,7 +974,7 @@ or does not have committer information available.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-update-server-info.html b/git-update-server-info.html
index d1ba95388..b3675ccf4 100644
--- a/git-update-server-info.html
+++ b/git-update-server-info.html
@@ -813,7 +813,7 @@ info/refs
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-upload-archive.html b/git-upload-archive.html
index 7240ffbf7..c60273b05 100644
--- a/git-upload-archive.html
+++ b/git-upload-archive.html
@@ -832,7 +832,7 @@ access via non-smart-http.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-upload-pack.html b/git-upload-pack.html
index b421c6f1f..9a9a70402 100644
--- a/git-upload-pack.html
+++ b/git-upload-pack.html
@@ -854,7 +854,7 @@ repository. For push operations, see <em>git send-pack</em>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-var.html b/git-var.html
index 13964d132..4d49b2ac5 100644
--- a/git-var.html
+++ b/git-var.html
@@ -924,7 +924,7 @@ disabled by other environment variables.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-verify-commit.html b/git-verify-commit.html
index 6f5ace1bb..5d96af43f 100644
--- a/git-verify-commit.html
+++ b/git-verify-commit.html
@@ -806,7 +806,7 @@ git-verify-commit(1) Manual Page
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-verify-pack.html b/git-verify-pack.html
index 2ef00f89e..3230d9f73 100644
--- a/git-verify-pack.html
+++ b/git-verify-pack.html
@@ -836,7 +836,7 @@ corresponding pack file.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-verify-tag.html b/git-verify-tag.html
index c7985cc38..3e1786e1c 100644
--- a/git-verify-tag.html
+++ b/git-verify-tag.html
@@ -806,7 +806,7 @@ git-verify-tag(1) Manual Page
<div id="footer">
<div id="footer-text">
Last updated
- 2022-10-29 03:53:56 JST
+ 2022-10-28 11:53:56 PDT
</div>
</div>
</body>
diff --git a/git-version.html b/git-version.html
index f0cd99551..689a0e37c 100644
--- a/git-version.html
+++ b/git-version.html
@@ -789,7 +789,7 @@ former is internally converted into the latter.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-09-24 06:33:59 JST
+ 2021-09-23 14:33:59 PDT
</div>
</div>
</body>
diff --git a/git-web--browse.html b/git-web--browse.html
index 35c3a9152..60e675aaf 100644
--- a/git-web--browse.html
+++ b/git-web--browse.html
@@ -964,7 +964,7 @@ See <a href="git-config.html">git-config(1)</a> for more information about this.
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/git-whatchanged.html b/git-whatchanged.html
index 6a681b5b9..e1280a31f 100644
--- a/git-whatchanged.html
+++ b/git-whatchanged.html
@@ -803,7 +803,7 @@ reading the Linux kernel mailing list are trained to type it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/git-worktree.html b/git-worktree.html
index 0f02f5936..8eb6c94b2 100644
--- a/git-worktree.html
+++ b/git-worktree.html
@@ -1399,7 +1399,7 @@ checkouts of a superproject.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-21 08:56:50 JST
+ 2023-10-20 16:56:50 PDT
</div>
</div>
</body>
diff --git a/git-write-tree.html b/git-write-tree.html
index cd1d4499b..49ed13fcd 100644
--- a/git-write-tree.html
+++ b/git-write-tree.html
@@ -805,7 +805,7 @@ now, you need to have done a <em>git update-index</em> phase before you did the
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/git.html b/git.html
index 2d01f0559..07f4de539 100644
--- a/git.html
+++ b/git.html
@@ -3828,7 +3828,7 @@ the Git Security mailing list &lt;<a href="mailto:git-security@googlegroups.com"
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-09 02:04:31 JST
+ 2023-11-08 09:04:31 PST
</div>
</div>
</body>
diff --git a/gitattributes.html b/gitattributes.html
index e01ee4c67..848f4fad8 100644
--- a/gitattributes.html
+++ b/gitattributes.html
@@ -2246,7 +2246,7 @@ frotz unspecified</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/gitcli.html b/gitcli.html
index 0b4d92d3a..4ed8ec24f 100644
--- a/gitcli.html
+++ b/gitcli.html
@@ -1052,7 +1052,7 @@ The two options can be specified together to ask a command to work
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitcore-tutorial.html b/gitcore-tutorial.html
index 1f2c8b2b8..8821f1d40 100644
--- a/gitcore-tutorial.html
+++ b/gitcore-tutorial.html
@@ -2458,7 +2458,7 @@ to follow, not easier.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/gitcredentials.html b/gitcredentials.html
index b79e4c2be..a05dc5bc0 100644
--- a/gitcredentials.html
+++ b/gitcredentials.html
@@ -1122,7 +1122,7 @@ helpers will just ignore the new requests).</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-07-19 00:52:58 JST
+ 2023-07-18 08:52:58 PDT
</div>
</div>
</body>
diff --git a/gitcvs-migration.html b/gitcvs-migration.html
index a4dbd62d6..2018d1ab9 100644
--- a/gitcvs-migration.html
+++ b/gitcvs-migration.html
@@ -957,7 +957,7 @@ repositories without the need for a central maintainer.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/gitdiffcore.html b/gitdiffcore.html
index 9e44a45bf..b29f33347 100644
--- a/gitdiffcore.html
+++ b/gitdiffcore.html
@@ -1108,7 +1108,7 @@ not sorted when diffcore-order is in effect.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/giteveryday.html b/giteveryday.html
index 68388d9c7..4507ec4e6 100644
--- a/giteveryday.html
+++ b/giteveryday.html
@@ -1546,7 +1546,7 @@ create and push version tags.
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/gitfaq.html b/gitfaq.html
index 70aba080d..3ca5875c2 100644
--- a/gitfaq.html
+++ b/gitfaq.html
@@ -1262,7 +1262,7 @@ platform.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-09-02 08:44:20 JST
+ 2021-09-01 16:44:20 PDT
</div>
</div>
</body>
diff --git a/gitformat-bundle.html b/gitformat-bundle.html
index a962c88d9..10befb28f 100644
--- a/gitformat-bundle.html
+++ b/gitformat-bundle.html
@@ -879,7 +879,7 @@ bundle</em> to abort.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitformat-chunk.html b/gitformat-chunk.html
index 2a08dad27..99740ceac 100644
--- a/gitformat-chunk.html
+++ b/gitformat-chunk.html
@@ -888,7 +888,7 @@ for future formats:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitformat-commit-graph.html b/gitformat-commit-graph.html
index 48084b510..feaa323ed 100644
--- a/gitformat-commit-graph.html
+++ b/gitformat-commit-graph.html
@@ -1076,7 +1076,7 @@ chunks and write the new information without trusting the incorrect data.</p></d
<div id="footer">
<div id="footer-text">
Last updated
- 2022-11-12 16:55:30 JST
+ 2022-11-11 23:55:30 PST
</div>
</div>
</body>
diff --git a/gitformat-index.html b/gitformat-index.html
index 204dd3e81..940ea0cfe 100644
--- a/gitformat-index.html
+++ b/gitformat-index.html
@@ -1493,7 +1493,7 @@ this extension.</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-02-10 09:57:15 JST
+ 2023-02-09 16:57:15 PST
</div>
</div>
</body>
diff --git a/gitformat-pack.html b/gitformat-pack.html
index 3f3030951..0ec60b5ab 100644
--- a/gitformat-pack.html
+++ b/gitformat-pack.html
@@ -1553,7 +1553,7 @@ support for optional chunks of data, it may make sense to consolidate the
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-09 02:04:31 JST
+ 2023-11-08 09:04:31 PST
</div>
</div>
</body>
diff --git a/gitformat-signature.html b/gitformat-signature.html
index 90266d404..da48c3b9e 100644
--- a/gitformat-signature.html
+++ b/gitformat-signature.html
@@ -1064,7 +1064,7 @@ Date: Wed Jun 15 09:13:29 2016 +0000
<div id="footer">
<div id="footer-text">
Last updated
- 2023-03-07 15:13:04 JST
+ 2023-03-06 22:13:04 PST
</div>
</div>
</body>
diff --git a/gitglossary.html b/gitglossary.html
index edda6d94a..39a2fdd3e 100644
--- a/gitglossary.html
+++ b/gitglossary.html
@@ -2001,7 +2001,7 @@ The most notable example is <code>HEAD</code>.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/githooks.html b/githooks.html
index 9ec0b2072..6d1777df2 100644
--- a/githooks.html
+++ b/githooks.html
@@ -1442,7 +1442,7 @@ running passing "1", "1" should not be possible.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitignore.html b/gitignore.html
index 4a72a80d3..4203adea7 100644
--- a/gitignore.html
+++ b/gitignore.html
@@ -1073,7 +1073,7 @@ everything within <code>foo/bar</code>):</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-07-28 07:46:24 JST
+ 2023-07-27 15:46:24 PDT
</div>
</div>
</body>
diff --git a/gitk.html b/gitk.html
index a2eabfc35..a60354d83 100644
--- a/gitk.html
+++ b/gitk.html
@@ -1101,7 +1101,7 @@ of end users.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-30 08:42:00 JST
+ 2023-10-29 16:42:00 PDT
</div>
</div>
</body>
diff --git a/gitmailmap.html b/gitmailmap.html
index 21e042161..0e095185a 100644
--- a/gitmailmap.html
+++ b/gitmailmap.html
@@ -892,7 +892,7 @@ Jane Doe &lt;jane@example.com&gt; Jane &lt;bugs@example.com&gt;</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-05-13 14:11:31 JST
+ 2021-05-12 22:11:31 PDT
</div>
</div>
</body>
diff --git a/gitmodules.html b/gitmodules.html
index 4206b680c..a5fae00b2 100644
--- a/gitmodules.html
+++ b/gitmodules.html
@@ -948,7 +948,7 @@ submodules a URL is specified which can be used for cloning the submodules.</p><
<div id="footer">
<div id="footer-text">
Last updated
- 2023-08-05 04:03:14 JST
+ 2023-08-04 12:03:14 PDT
</div>
</div>
</body>
diff --git a/gitnamespaces.html b/gitnamespaces.html
index df10c2142..5f21d87da 100644
--- a/gitnamespaces.html
+++ b/gitnamespaces.html
@@ -850,7 +850,7 @@ As in #1, the attacker chooses an object ID X to steal. The victim sends
<div id="footer">
<div id="footer-text">
Last updated
- 2021-05-07 13:22:01 JST
+ 2021-05-06 21:22:01 PDT
</div>
</div>
</body>
diff --git a/gitprotocol-capabilities.html b/gitprotocol-capabilities.html
index d28572d1b..3b4d5dec2 100644
--- a/gitprotocol-capabilities.html
+++ b/gitprotocol-capabilities.html
@@ -1154,7 +1154,7 @@ and users of the session ID should not rely on this fact.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitprotocol-common.html b/gitprotocol-common.html
index 7ab286d15..90d5db18a 100644
--- a/gitprotocol-common.html
+++ b/gitprotocol-common.html
@@ -889,7 +889,7 @@ pkt-line ("0004").</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitprotocol-http.html b/gitprotocol-http.html
index bed497187..0285551f6 100644
--- a/gitprotocol-http.html
+++ b/gitprotocol-http.html
@@ -1279,7 +1279,7 @@ update = old_id SP new_id SP name</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitprotocol-pack.html b/gitprotocol-pack.html
index 72ebc4172..dc70204f4 100644
--- a/gitprotocol-pack.html
+++ b/gitprotocol-pack.html
@@ -1494,7 +1494,7 @@ can be rejected.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitprotocol-v2.html b/gitprotocol-v2.html
index 69d06f3d2..7080f39a2 100644
--- a/gitprotocol-v2.html
+++ b/gitprotocol-v2.html
@@ -1719,7 +1719,7 @@ headers of that bundle or bundles.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitremote-helpers.html b/gitremote-helpers.html
index 5181b9d62..57b295833 100644
--- a/gitremote-helpers.html
+++ b/gitremote-helpers.html
@@ -1537,7 +1537,7 @@ the remote side using that algorithm.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-02 05:55:22 JST
+ 2022-09-01 13:55:22 PDT
</div>
</div>
</body>
diff --git a/gitrepository-layout.html b/gitrepository-layout.html
index 17b40f6b2..1fe37233d 100644
--- a/gitrepository-layout.html
+++ b/gitrepository-layout.html
@@ -1372,7 +1372,7 @@ GIT_COMMON_DIR/worktrees/&lt;id&gt;/config.worktree)</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/gitrevisions.html b/gitrevisions.html
index cc63fe392..764b805a7 100644
--- a/gitrevisions.html
+++ b/gitrevisions.html
@@ -1417,7 +1417,7 @@ spelt out:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/gitsubmodules.html b/gitsubmodules.html
index 853f320bd..f125266d3 100644
--- a/gitsubmodules.html
+++ b/gitsubmodules.html
@@ -1113,7 +1113,7 @@ affects other Git commands, see <a href="git-config.html">git-config(1)</a> for
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gittutorial-2.html b/gittutorial-2.html
index 3f6717bad..4be9cc51e 100644
--- a/gittutorial-2.html
+++ b/gittutorial-2.html
@@ -1171,7 +1171,7 @@ example, creating a new commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/gittutorial.html b/gittutorial.html
index 3eadf0512..78b57f99a 100644
--- a/gittutorial.html
+++ b/gittutorial.html
@@ -1374,7 +1374,7 @@ digressions that may be interesting at this point are:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-19 05:44:22 JST
+ 2023-10-18 13:44:22 PDT
</div>
</div>
</body>
diff --git a/gitweb.conf.html b/gitweb.conf.html
index cb5bd4fba..9369a341b 100644
--- a/gitweb.conf.html
+++ b/gitweb.conf.html
@@ -2015,7 +2015,7 @@ gitweb_config.perl
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitweb.html b/gitweb.html
index 044ac94f6..d9c01c75c 100644
--- a/gitweb.html
+++ b/gitweb.html
@@ -1642,7 +1642,7 @@ putting "gitweb" in the subject of email.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/gitworkflows.html b/gitworkflows.html
index e68de91f5..4c63bc675 100644
--- a/gitworkflows.html
+++ b/gitworkflows.html
@@ -1225,7 +1225,7 @@ other options.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-12-11 07:52:02 JST
+ 2021-12-10 14:52:02 PST
</div>
</div>
</body>
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html
index d573020c3..85f1a789d 100644
--- a/howto/coordinate-embargoed-releases.html
+++ b/howto/coordinate-embargoed-releases.html
@@ -1038,7 +1038,7 @@ Thanks,
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index e19d73455..ed65deed1 100644
--- a/howto/keep-canonical-history-correct.html
+++ b/howto/keep-canonical-history-correct.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Keep authoritative canonical history correct with git pull</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -939,7 +939,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index ec35401f3..78775397a 100644
--- a/howto/maintain-git.html
+++ b/howto/maintain-git.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to maintain Git</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -1479,7 +1479,7 @@ $ git update-ref -d $mf/ai/topic</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index 9bafae85b..84f8bbc27 100644
--- a/howto/new-command.html
+++ b/howto/new-command.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to integrate new subcommands</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -864,7 +864,7 @@ letter [PATCH 0/n].
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:05 JST
+ 2023-12-09 17:41:24 PST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index 35c41f9c2..318e7d2ce 100644
--- a/howto/rebase-from-internal-branch.html
+++ b/howto/rebase-from-internal-branch.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to rebase from an internal branch</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -896,7 +896,7 @@ the #1' commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index fc3ee9e24..b4ac28e4f 100644
--- a/howto/rebuild-from-update-hook.html
+++ b/howto/rebuild-from-update-hook.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to rebuild from update hook</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -848,7 +848,7 @@ This is still crude and does not protect against simultaneous
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index c3c0eed7b..4b0278004 100644
--- a/howto/recover-corrupted-blob-object.html
+++ b/howto/recover-corrupted-blob-object.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to recover a corrupted blob object</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -881,7 +881,7 @@ thing.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index 6a38ae43e..286590845 100644
--- a/howto/recover-corrupted-object-harder.html
+++ b/howto/recover-corrupted-object-harder.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to recover an object from scratch</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1190,7 +1190,7 @@ int main(int argc, char **argv)
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:07 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index 5e2e36ea6..3d5bc8abd 100644
--- a/howto/revert-a-faulty-merge.html
+++ b/howto/revert-a-faulty-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to revert a faulty merge</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1026,7 +1026,7 @@ P---o---o---M---x---x---W---x---M2
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:26 PST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 62f7e16c1..b530fd2af 100644
--- a/howto/revert-branch-rebase.html
+++ b/howto/revert-branch-rebase.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to revert an existing commit</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -908,7 +908,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:05 JST
+ 2023-12-09 17:41:24 PST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index 5e88f25a9..f6fd68cda 100644
--- a/howto/separating-topic-branches.html
+++ b/howto/separating-topic-branches.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to separate topic branches</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -842,7 +842,7 @@ o---o"master"</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:25 PST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index a29b67764..5c4cd343f 100644
--- a/howto/setup-git-server-over-http.html
+++ b/howto/setup-git-server-over-http.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to setup Git server over http</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1072,7 +1072,7 @@ help diagnosing the problem, but removes security checks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:25 PST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index 898b00560..a677b8772 100644
--- a/howto/update-hook-example.html
+++ b/howto/update-hook-example.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use the update hook</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -931,7 +931,7 @@ that JC can make non-fast-forward pushes on it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:25 PST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 33bfe6ca9..bc92e5638 100644
--- a/howto/use-git-daemon.html
+++ b/howto/use-git-daemon.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use git-daemon</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -792,7 +792,7 @@ a good practice to put the paths after a "--" separator.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:25 PST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 1c0a90440..109815475 100644
--- a/howto/using-merge-subtree.html
+++ b/howto/using-merge-subtree.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use the subtree merge strategy</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -849,7 +849,7 @@ Please note that if the other project merges from you, then it will
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:24 PST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index 1fb56b951..b5743ec25 100644
--- a/howto/using-signed-tag-in-pull-request.html
+++ b/howto/using-signed-tag-in-pull-request.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>How to use a signed tag in pull requests</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -953,7 +953,7 @@ as part of the merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:06 JST
+ 2023-12-09 17:41:25 PST
</div>
</div>
</body>
diff --git a/scalar.html b/scalar.html
index b39c140de..36729baf6 100644
--- a/scalar.html
+++ b/scalar.html
@@ -999,7 +999,7 @@ delete &lt;enlistment&gt;
<div id="footer">
<div id="footer-text">
Last updated
- 2023-08-30 06:18:03 JST
+ 2023-08-29 14:18:03 PDT
</div>
</div>
</body>
diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html
index 4a573f5ce..95f34ee7c 100644
--- a/technical/api-error-handling.html
+++ b/technical/api-error-handling.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Error reporting in git</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -879,7 +879,7 @@ a message, pass a strbuf that is explicitly ignored:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-22 07:44:34 JST
+ 2022-09-21 15:44:34 PDT
</div>
</div>
</body>
diff --git a/technical/api-index.html b/technical/api-index.html
index 1c1267c47..8ced06053 100644
--- a/technical/api-index.html
+++ b/technical/api-index.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git API Documents</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -776,7 +776,7 @@ documents them.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-11-21 01:57:10 JST
+ 2023-11-20 08:57:10 PST
</div>
</div>
</body>
diff --git a/technical/api-merge.html b/technical/api-merge.html
index ed4d6e97e..eb1fc7628 100644
--- a/technical/api-merge.html
+++ b/technical/api-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>merge API</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -802,7 +802,7 @@ and <code>diff.c</code> for examples.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-07-01 04:48:29 JST
+ 2023-06-30 12:48:29 PDT
</div>
</div>
</body>
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html
index 9a6dd4386..c11b77419 100644
--- a/technical/api-parse-options.html
+++ b/technical/api-parse-options.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>parse-options API</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1352,7 +1352,7 @@ for real-world examples.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-22 07:44:34 JST
+ 2022-09-21 15:44:34 PDT
</div>
</div>
</body>
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html
index abbb70092..ffedaac8d 100644
--- a/technical/api-simple-ipc.html
+++ b/technical/api-simple-ipc.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Simple-IPC API</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -841,7 +841,7 @@ layer to focus on the task at hand.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/api-trace2.html b/technical/api-trace2.html
index 9b095205b..aa7511234 100644
--- a/technical/api-trace2.html
+++ b/technical/api-trace2.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Trace2 API</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -2355,7 +2355,7 @@ Trace2 targets (and convert &lt;key&gt; to a "category").
<div id="footer">
<div id="footer-text">
Last updated
- 2022-11-05 13:49:36 JST
+ 2022-11-04 21:49:36 PDT
</div>
</div>
</body>
diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html
index d3a461857..56ef54fe7 100644
--- a/technical/bitmap-format.html
+++ b/technical/bitmap-format.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>GIT bitmap v1 format</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -1209,7 +1209,7 @@ xor_row (4 byte integer, network byte order):
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html
index 796804290..db8d5f1cf 100644
--- a/technical/bundle-uri.html
+++ b/technical/bundle-uri.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Bundle URIs</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1464,7 +1464,7 @@ would cause these on-demand downloads to be too aggressive.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-02-23 08:29:29 JST
+ 2023-02-22 15:29:29 PST
</div>
</div>
</body>
diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html
index 3246fe9d5..1c1541a23 100644
--- a/technical/hash-function-transition.html
+++ b/technical/hash-function-transition.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git hash function transition</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -2088,7 +2088,7 @@ See the history of this file in git.git for the history of subsequent
<div id="footer">
<div id="footer-text">
Last updated
- 2023-01-31 07:44:53 JST
+ 2023-01-30 14:44:53 PST
</div>
</div>
</body>
diff --git a/technical/long-running-process-protocol.html b/technical/long-running-process-protocol.html
index 7529f956b..dc77d3697 100644
--- a/technical/long-running-process-protocol.html
+++ b/technical/long-running-process-protocol.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Long-running process protocol</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -796,7 +796,7 @@ process has stopped.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-08-19 06:11:07 JST
+ 2022-08-18 14:11:07 PDT
</div>
</div>
</body>
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html
index 05b75b8a6..66e4c80e0 100644
--- a/technical/multi-pack-index.html
+++ b/technical/multi-pack-index.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Multi-Pack-Index (MIDX) Design Notes</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -913,7 +913,7 @@ Packfiles can be marked as "special" using empty files that share
<div id="footer">
<div id="footer-text">
Last updated
- 2022-02-17 10:29:08 JST
+ 2022-02-16 17:29:08 PST
</div>
</div>
</body>
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html
index c1abfaba3..8a19c9602 100644
--- a/technical/pack-heuristics.html
+++ b/technical/pack-heuristics.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Concerning Git&#8217;s Packing Heuristics</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1344,7 +1344,7 @@ so obvious that they never go anywhere.</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html
index 564e4fede..8c84be746 100644
--- a/technical/parallel-checkout.html
+++ b/technical/parallel-checkout.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Parallel Checkout Design Notes</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1076,7 +1076,7 @@ err |= run_parallel_checkout(&amp;state, pc_workers, pc_threshold, NULL, NULL);<
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/partial-clone.html b/technical/partial-clone.html
index 22b779b62..39dc073bf 100644
--- a/technical/partial-clone.html
+++ b/technical/partial-clone.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Partial Clone Design Notes</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -1214,7 +1214,7 @@ type of packfile that references it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/racy-git.html b/technical/racy-git.html
index 88ffb00e5..ca4b7a00d 100644
--- a/technical/racy-git.html
+++ b/technical/racy-git.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Use of index and Racy Git problem</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -953,7 +953,7 @@ practice anymore. This was done with commit 0fc82cff on Aug 15,
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/reftable.html b/technical/reftable.html
index 0b6e6315d..d226a686c 100644
--- a/technical/reftable.html
+++ b/technical/reftable.html
@@ -2056,7 +2056,7 @@ impossible.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2023-10-24 06:43:46 JST
+ 2023-10-23 14:43:46 PDT
</div>
</div>
</body>
diff --git a/technical/scalar.html b/technical/scalar.html
index 8a4c6101b..0bd4bb2bf 100644
--- a/technical/scalar.html
+++ b/technical/scalar.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Scalar</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -834,7 +834,7 @@ built and installed as its own executable in the <code>bin/</code> directory, al
<div id="footer">
<div id="footer-text">
Last updated
- 2022-09-20 07:03:44 JST
+ 2022-09-19 15:03:44 PDT
</div>
</div>
</body>
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html
index 63b752807..d4bb0d611 100644
--- a/technical/send-pack-pipeline.html
+++ b/technical/send-pack-pipeline.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Git-send-pack internals</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div class="sect1">
@@ -828,7 +828,7 @@ closes the reading side of the pipe and fd to receive-pack.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/shallow.html b/technical/shallow.html
index 9de5814d9..7e79cf3ed 100644
--- a/technical/shallow.html
+++ b/technical/shallow.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Shallow commits</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -814,7 +814,7 @@ number a signed 32-bit integer can contain) means infinite depth.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-08-20 14:10:31 JST
+ 2020-08-19 22:10:31 PDT
</div>
</div>
</body>
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html
index 402496a1a..657ca4470 100644
--- a/technical/trivial-merge.html
+++ b/technical/trivial-merge.html
@@ -735,7 +735,7 @@ asciidoc.install();
<body class="article">
<div id="header">
<h1>Trivial merge rules</h1>
-<span id="revdate">2023-11-20</span>
+<span id="revdate">2023-12-09</span>
</div>
<div id="content">
<div id="preamble">
@@ -857,7 +857,7 @@ the automatic merge will generally give this effect.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-11 07:02:33 JST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/unit-tests.html b/technical/unit-tests.html
new file mode 100644
index 000000000..45a9cd45a
--- /dev/null
+++ b/technical/unit-tests.html
@@ -0,0 +1,1216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 10.2.0" />
+<title>Unit Testing</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Unit Testing</h1>
+<span id="revdate">2023-12-09</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>In our current testing environment, we spend a significant amount of effort
+crafting end-to-end tests for error conditions that could easily be captured by
+unit tests (or we simply forgo some hard-to-setup and rare error conditions).
+Unit tests additionally provide stability to the codebase and can simplify
+debugging through isolation. Writing unit tests in pure C, rather than with our
+current shell/test-tool helper setup, simplifies test setup, simplifies passing
+data around (no shell-isms required), and reduces testing runtime by not
+spawning a separate process for every test invocation.</p></div>
+<div class="paragraph"><p>We believe that a large body of unit tests, living alongside the existing test
+suite, will improve code quality for the Git project.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_definitions">Definitions</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>For the purposes of this document, we&#8217;ll use <strong>test framework</strong> to refer to
+projects that support writing test cases and running tests within the context
+of a single executable. <strong>Test harness</strong> will refer to projects that manage
+running multiple executables (each of which may contain multiple test cases) and
+aggregating their results.</p></div>
+<div class="paragraph"><p>In reality, these terms are not strictly defined, and many of the projects
+discussed below contain features from both categories.</p></div>
+<div class="paragraph"><p>For now, we will evaluate projects solely on their framework features. Since we
+are relying on having TAP output (see below), we can assume that any framework
+can be made to work with a harness that we can choose later.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_summary">Summary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>We believe the best way forward is to implement a custom TAP framework for the
+Git project. We use a version of the framework originally proposed in
+<a href="https://lore.kernel.org/git/c902a166-98ce-afba-93f2-ea6027557176@gmail.com/">1</a>.</p></div>
+<div class="paragraph"><p>See the <a href="#framework-selection">Framework Selection</a> section below for the
+rationale behind this decision.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_choosing_a_test_harness">Choosing a test harness</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>During upstream discussion, it was occasionally noted that <code>prove</code> provides many
+convenient features, such as scheduling slower tests first, or re-running
+previously failed tests.</p></div>
+<div class="paragraph"><p>While we already support the use of <code>prove</code> as a test harness for the shell
+tests, it is not strictly required. The t/Makefile allows running shell tests
+directly (though with interleaved output if parallelism is enabled). Git
+developers who wish to use <code>prove</code> as a more advanced harness can do so by
+setting DEFAULT_TEST_TARGET=prove in their config.mak.</p></div>
+<div class="paragraph"><p>We will follow a similar approach for unit tests: by default the test
+executables will be run directly from the t/Makefile, but <code>prove</code> can be
+configured with DEFAULT_UNIT_TEST_TARGET=prove.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="framework-selection">Framework selection</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>There are a variety of features we can use to rank the candidate frameworks, and
+those features have different priorities:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Critical features: we probably won&#8217;t consider a framework without these
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Can we legally / easily use the project?
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="#license">License</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#vendorable-or-ubiquitous">Vendorable or ubiquitous</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#maintainable-extensible">Maintainable / extensible</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#major-platform-support">Major platform support</a>
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Does the project support our bare-minimum needs?
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="#tap-support">TAP support</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#diagnostic-output">Diagnostic output</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#runtime-skippable-tests">Runtime-skippable tests</a>
+</p>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nice-to-have features:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="#parallel-execution">Parallel execution</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#mock-support">Mock support</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#signal-error-handling">Signal &amp; error-handling</a>
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Tie-breaker stats
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="#project-kloc">Project KLOC</a>
+</p>
+</li>
+<li>
+<p>
+<a href="#adoption">Adoption</a>
+</p>
+</li>
+</ul></div>
+</li>
+</ul></div>
+<div class="sect2">
+<h3 id="license">License</h3>
+<div class="paragraph"><p>We must be able to legally use the framework in connection with Git. As Git is
+licensed only under GPLv2, we must eliminate any LGPLv3, GPLv3, or Apache 2.0
+projects.</p></div>
+</div>
+<div class="sect2">
+<h3 id="vendorable-or-ubiquitous">Vendorable or ubiquitous</h3>
+<div class="paragraph"><p>We want to avoid forcing Git developers to install new tools just to run unit
+tests. Any prospective frameworks and harnesses must either be vendorable
+(meaning, we can copy their source directly into Git&#8217;s repository), or so
+ubiquitous that it is reasonable to expect that most developers will have the
+tools installed already.</p></div>
+</div>
+<div class="sect2">
+<h3 id="maintainable-extensible">Maintainable / extensible</h3>
+<div class="paragraph"><p>It is unlikely that any pre-existing project perfectly fits our needs, so any
+project we select will need to be actively maintained and open to accepting
+changes. Alternatively, assuming we are vendoring the source into our repo, it
+must be simple enough that Git developers can feel comfortable making changes as
+needed to our version.</p></div>
+<div class="paragraph"><p>In the comparison table below, "True" means that the framework seems to have
+active developers, that it is simple enough that Git developers can make changes
+to it, and that the project seems open to accepting external contributions (or
+that it is vendorable). "Partial" means that at least one of the above
+conditions holds.</p></div>
+</div>
+<div class="sect2">
+<h3 id="major-platform-support">Major platform support</h3>
+<div class="paragraph"><p>At a bare minimum, unit-testing must work on Linux, MacOS, and Windows.</p></div>
+<div class="paragraph"><p>In the comparison table below, "True" means that it works on all three major
+platforms with no issues. "Partial" means that there may be annoyances on one or
+more platforms, but it is still usable in principle.</p></div>
+</div>
+<div class="sect2">
+<h3 id="tap-support">TAP support</h3>
+<div class="paragraph"><p>The <a href="https://testanything.org/">Test Anything Protocol</a> is a text-based interface
+that allows tests to communicate with a test harness. It is already used by
+Git&#8217;s integration test suite. Supporting TAP output is a mandatory feature for
+any prospective test framework.</p></div>
+<div class="paragraph"><p>In the comparison table below, "True" means this is natively supported.
+"Partial" means TAP output must be generated by post-processing the native
+output.</p></div>
+<div class="paragraph"><p>Frameworks that do not have at least Partial support will not be evaluated
+further.</p></div>
+</div>
+<div class="sect2">
+<h3 id="diagnostic-output">Diagnostic output</h3>
+<div class="paragraph"><p>When a test case fails, the framework must generate enough diagnostic output to
+help developers find the appropriate test case in source code in order to debug
+the failure.</p></div>
+</div>
+<div class="sect2">
+<h3 id="runtime-skippable-tests">Runtime-skippable tests</h3>
+<div class="paragraph"><p>Test authors may wish to skip certain test cases based on runtime circumstances,
+so the framework should support this.</p></div>
+</div>
+<div class="sect2">
+<h3 id="parallel-execution">Parallel execution</h3>
+<div class="paragraph"><p>Ideally, we will build up a significant collection of unit test cases, most
+likely split across multiple executables. It will be necessary to run these
+tests in parallel to enable fast develop-test-debug cycles.</p></div>
+<div class="paragraph"><p>In the comparison table below, "True" means that individual test cases within a
+single test executable can be run in parallel. We assume that executable-level
+parallelism can be handled by the test harness.</p></div>
+</div>
+<div class="sect2">
+<h3 id="mock-support">Mock support</h3>
+<div class="paragraph"><p>Unit test authors may wish to test code that interacts with objects that may be
+inconvenient to handle in a test (e.g. interacting with a network service).
+Mocking allows test authors to provide a fake implementation of these objects
+for more convenient tests.</p></div>
+</div>
+<div class="sect2">
+<h3 id="signal-error-handling">Signal &amp; error handling</h3>
+<div class="paragraph"><p>The test framework should fail gracefully when test cases are themselves buggy
+or when they are interrupted by signals during runtime.</p></div>
+</div>
+<div class="sect2">
+<h3 id="project-kloc">Project KLOC</h3>
+<div class="paragraph"><p>The size of the project, in thousands of lines of code as measured by
+<a href="https://dwheeler.com/sloccount/">sloccount</a> (rounded up to the next multiple of
+1,000). As a tie-breaker, we probably prefer a project with fewer LOC.</p></div>
+</div>
+<div class="sect2">
+<h3 id="adoption">Adoption</h3>
+<div class="paragraph"><p>As a tie-breaker, we prefer a more widely-used project. We use the number of
+GitHub / GitLab stars to estimate this.</p></div>
+</div>
+<div class="sect2">
+<h3 id="_comparison">Comparison</h3>
+<div class="tableblock">
+<table rules="all"
+width="33%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<col width="4%" />
+<thead>
+<tr>
+<th align="left" valign="top">Framework</th>
+<th align="left" valign="top"><a href="#license">License</a></th>
+<th align="left" valign="top"><a href="#vendorable-or-ubiquitous">Vendorable or ubiquitous</a></th>
+<th align="left" valign="top"><a href="#maintainable-extensible">Maintainable / extensible</a></th>
+<th align="left" valign="top"><a href="#major-platform-support">Major platform support</a></th>
+<th align="left" valign="top"><a href="#tap-support">TAP support</a></th>
+<th align="left" valign="top"><a href="#diagnostic-output">Diagnostic output</a></th>
+<th align="left" valign="top"><a href="#runtime--skippable-tests">Runtime- skippable tests</a></th>
+<th align="left" valign="top"><a href="#parallel-execution">Parallel execution</a></th>
+<th align="left" valign="top"><a href="#mock-support">Mock support</a></th>
+<th align="left" valign="top"><a href="#signal-error-handling">Signal &amp; error handling</a></th>
+<th align="left" valign="top"><a href="#project-kloc">Project KLOC</a></th>
+<th align="left" valign="top"><a href="#adoption">Adoption</a></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table"><a href="https://lore.kernel.org/git/c902a166-98ce-afba-93f2-ea6027557176@gmail.com/">Custom Git impl.</a></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">GPL v2</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">0</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><a href="https://github.com/silentbicycle/greatest">Greatest</a></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">ISC</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">1400</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><a href="https://github.com/Snaipe/Criterion">Criterion</a></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">MIT</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table">19</p></td>
+<td align="left" valign="top"><p class="table">1800</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><a href="https://github.com/rra/c-tap-harness/">C TAP</a></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">Expat</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table">4</p></td>
+<td align="left" valign="top"><p class="table">33</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><a href="https://libcheck.github.io/check/">Check</a></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">LGPL v2.1</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="yellow-background">Partial</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="red-background">False</span></p></td>
+<td align="left" valign="top"><p class="table"><span class="lime-background">True</span></p></td>
+<td align="left" valign="top"><p class="table">17</p></td>
+<td align="left" valign="top"><p class="table">973</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_additional_framework_candidates">Additional framework candidates</h3>
+<div class="paragraph"><p>Several suggested frameworks have been eliminated from consideration:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Incompatible licenses:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="https://github.com/zorgnax/libtap">libtap</a> (LGPL v3)
+</p>
+</li>
+<li>
+<p>
+<a href="https://cmocka.org/">cmocka</a> (Apache 2.0)
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Missing source: <a href="https://www.kindahl.net/mytap/doc/index.html">MyTap</a>
+</p>
+</li>
+<li>
+<p>
+No TAP support:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<a href="https://nemequ.github.io/munit/">µnit</a>
+</p>
+</li>
+<li>
+<p>
+<a href="https://github.com/google/cmockery">cmockery</a>
+</p>
+</li>
+<li>
+<p>
+<a href="https://github.com/lpabon/cmockery2">cmockery2</a>
+</p>
+</li>
+<li>
+<p>
+<a href="https://github.com/ThrowTheSwitch/Unity">Unity</a>
+</p>
+</li>
+<li>
+<p>
+<a href="https://github.com/siu/minunit">minunit</a>
+</p>
+</li>
+<li>
+<p>
+<a href="https://cunit.sourceforge.net/">CUnit</a>
+</p>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_milestones">Milestones</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+Add useful tests of library-like code
+</p>
+</li>
+<li>
+<p>
+Integrate with
+ <a href="https://lore.kernel.org/git/20230502211454.1673000-1-calvinwan@google.com/">stdlib
+ work</a>
+</p>
+</li>
+<li>
+<p>
+Run alongside regular <code>make test</code> target
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2023-12-09 17:40:53 PST
+</div>
+</div>
+</body>
+</html>
diff --git a/technical/unit-tests.txt b/technical/unit-tests.txt
new file mode 100644
index 000000000..206037ffb
--- /dev/null
+++ b/technical/unit-tests.txt
@@ -0,0 +1,240 @@
+= Unit Testing
+
+In our current testing environment, we spend a significant amount of effort
+crafting end-to-end tests for error conditions that could easily be captured by
+unit tests (or we simply forgo some hard-to-setup and rare error conditions).
+Unit tests additionally provide stability to the codebase and can simplify
+debugging through isolation. Writing unit tests in pure C, rather than with our
+current shell/test-tool helper setup, simplifies test setup, simplifies passing
+data around (no shell-isms required), and reduces testing runtime by not
+spawning a separate process for every test invocation.
+
+We believe that a large body of unit tests, living alongside the existing test
+suite, will improve code quality for the Git project.
+
+== Definitions
+
+For the purposes of this document, we'll use *test framework* to refer to
+projects that support writing test cases and running tests within the context
+of a single executable. *Test harness* will refer to projects that manage
+running multiple executables (each of which may contain multiple test cases) and
+aggregating their results.
+
+In reality, these terms are not strictly defined, and many of the projects
+discussed below contain features from both categories.
+
+For now, we will evaluate projects solely on their framework features. Since we
+are relying on having TAP output (see below), we can assume that any framework
+can be made to work with a harness that we can choose later.
+
+
+== Summary
+
+We believe the best way forward is to implement a custom TAP framework for the
+Git project. We use a version of the framework originally proposed in
+https://lore.kernel.org/git/c902a166-98ce-afba-93f2-ea6027557176@gmail.com/[1].
+
+See the <<framework-selection,Framework Selection>> section below for the
+rationale behind this decision.
+
+
+== Choosing a test harness
+
+During upstream discussion, it was occasionally noted that `prove` provides many
+convenient features, such as scheduling slower tests first, or re-running
+previously failed tests.
+
+While we already support the use of `prove` as a test harness for the shell
+tests, it is not strictly required. The t/Makefile allows running shell tests
+directly (though with interleaved output if parallelism is enabled). Git
+developers who wish to use `prove` as a more advanced harness can do so by
+setting DEFAULT_TEST_TARGET=prove in their config.mak.
+
+We will follow a similar approach for unit tests: by default the test
+executables will be run directly from the t/Makefile, but `prove` can be
+configured with DEFAULT_UNIT_TEST_TARGET=prove.
+
+
+[[framework-selection]]
+== Framework selection
+
+There are a variety of features we can use to rank the candidate frameworks, and
+those features have different priorities:
+
+* Critical features: we probably won't consider a framework without these
+** Can we legally / easily use the project?
+*** <<license,License>>
+*** <<vendorable-or-ubiquitous,Vendorable or ubiquitous>>
+*** <<maintainable-extensible,Maintainable / extensible>>
+*** <<major-platform-support,Major platform support>>
+** Does the project support our bare-minimum needs?
+*** <<tap-support,TAP support>>
+*** <<diagnostic-output,Diagnostic output>>
+*** <<runtime-skippable-tests,Runtime-skippable tests>>
+* Nice-to-have features:
+** <<parallel-execution,Parallel execution>>
+** <<mock-support,Mock support>>
+** <<signal-error-handling,Signal & error-handling>>
+* Tie-breaker stats
+** <<project-kloc,Project KLOC>>
+** <<adoption,Adoption>>
+
+[[license]]
+=== License
+
+We must be able to legally use the framework in connection with Git. As Git is
+licensed only under GPLv2, we must eliminate any LGPLv3, GPLv3, or Apache 2.0
+projects.
+
+[[vendorable-or-ubiquitous]]
+=== Vendorable or ubiquitous
+
+We want to avoid forcing Git developers to install new tools just to run unit
+tests. Any prospective frameworks and harnesses must either be vendorable
+(meaning, we can copy their source directly into Git's repository), or so
+ubiquitous that it is reasonable to expect that most developers will have the
+tools installed already.
+
+[[maintainable-extensible]]
+=== Maintainable / extensible
+
+It is unlikely that any pre-existing project perfectly fits our needs, so any
+project we select will need to be actively maintained and open to accepting
+changes. Alternatively, assuming we are vendoring the source into our repo, it
+must be simple enough that Git developers can feel comfortable making changes as
+needed to our version.
+
+In the comparison table below, "True" means that the framework seems to have
+active developers, that it is simple enough that Git developers can make changes
+to it, and that the project seems open to accepting external contributions (or
+that it is vendorable). "Partial" means that at least one of the above
+conditions holds.
+
+[[major-platform-support]]
+=== Major platform support
+
+At a bare minimum, unit-testing must work on Linux, MacOS, and Windows.
+
+In the comparison table below, "True" means that it works on all three major
+platforms with no issues. "Partial" means that there may be annoyances on one or
+more platforms, but it is still usable in principle.
+
+[[tap-support]]
+=== TAP support
+
+The https://testanything.org/[Test Anything Protocol] is a text-based interface
+that allows tests to communicate with a test harness. It is already used by
+Git's integration test suite. Supporting TAP output is a mandatory feature for
+any prospective test framework.
+
+In the comparison table below, "True" means this is natively supported.
+"Partial" means TAP output must be generated by post-processing the native
+output.
+
+Frameworks that do not have at least Partial support will not be evaluated
+further.
+
+[[diagnostic-output]]
+=== Diagnostic output
+
+When a test case fails, the framework must generate enough diagnostic output to
+help developers find the appropriate test case in source code in order to debug
+the failure.
+
+[[runtime-skippable-tests]]
+=== Runtime-skippable tests
+
+Test authors may wish to skip certain test cases based on runtime circumstances,
+so the framework should support this.
+
+[[parallel-execution]]
+=== Parallel execution
+
+Ideally, we will build up a significant collection of unit test cases, most
+likely split across multiple executables. It will be necessary to run these
+tests in parallel to enable fast develop-test-debug cycles.
+
+In the comparison table below, "True" means that individual test cases within a
+single test executable can be run in parallel. We assume that executable-level
+parallelism can be handled by the test harness.
+
+[[mock-support]]
+=== Mock support
+
+Unit test authors may wish to test code that interacts with objects that may be
+inconvenient to handle in a test (e.g. interacting with a network service).
+Mocking allows test authors to provide a fake implementation of these objects
+for more convenient tests.
+
+[[signal-error-handling]]
+=== Signal & error handling
+
+The test framework should fail gracefully when test cases are themselves buggy
+or when they are interrupted by signals during runtime.
+
+[[project-kloc]]
+=== Project KLOC
+
+The size of the project, in thousands of lines of code as measured by
+https://dwheeler.com/sloccount/[sloccount] (rounded up to the next multiple of
+1,000). As a tie-breaker, we probably prefer a project with fewer LOC.
+
+[[adoption]]
+=== Adoption
+
+As a tie-breaker, we prefer a more widely-used project. We use the number of
+GitHub / GitLab stars to estimate this.
+
+
+=== Comparison
+
+:true: [lime-background]#True#
+:false: [red-background]#False#
+:partial: [yellow-background]#Partial#
+
+:gpl: [lime-background]#GPL v2#
+:isc: [lime-background]#ISC#
+:mit: [lime-background]#MIT#
+:expat: [lime-background]#Expat#
+:lgpl: [lime-background]#LGPL v2.1#
+
+:custom-impl: https://lore.kernel.org/git/c902a166-98ce-afba-93f2-ea6027557176@gmail.com/[Custom Git impl.]
+:greatest: https://github.com/silentbicycle/greatest[Greatest]
+:criterion: https://github.com/Snaipe/Criterion[Criterion]
+:c-tap: https://github.com/rra/c-tap-harness/[C TAP]
+:check: https://libcheck.github.io/check/[Check]
+
+[format="csv",options="header",width="33%",subs="specialcharacters,attributes,quotes,macros"]
+|=====
+Framework,"<<license,License>>","<<vendorable-or-ubiquitous,Vendorable or ubiquitous>>","<<maintainable-extensible,Maintainable / extensible>>","<<major-platform-support,Major platform support>>","<<tap-support,TAP support>>","<<diagnostic-output,Diagnostic output>>","<<runtime--skippable-tests,Runtime- skippable tests>>","<<parallel-execution,Parallel execution>>","<<mock-support,Mock support>>","<<signal-error-handling,Signal & error handling>>","<<project-kloc,Project KLOC>>","<<adoption,Adoption>>"
+{custom-impl},{gpl},{true},{true},{true},{true},{true},{true},{false},{false},{false},1,0
+{greatest},{isc},{true},{partial},{true},{partial},{true},{true},{false},{false},{false},3,1400
+{criterion},{mit},{false},{partial},{true},{true},{true},{true},{true},{false},{true},19,1800
+{c-tap},{expat},{true},{partial},{partial},{true},{false},{true},{false},{false},{false},4,33
+{check},{lgpl},{false},{partial},{true},{true},{true},{false},{false},{false},{true},17,973
+|=====
+
+=== Additional framework candidates
+
+Several suggested frameworks have been eliminated from consideration:
+
+* Incompatible licenses:
+** https://github.com/zorgnax/libtap[libtap] (LGPL v3)
+** https://cmocka.org/[cmocka] (Apache 2.0)
+* Missing source: https://www.kindahl.net/mytap/doc/index.html[MyTap]
+* No TAP support:
+** https://nemequ.github.io/munit/[µnit]
+** https://github.com/google/cmockery[cmockery]
+** https://github.com/lpabon/cmockery2[cmockery2]
+** https://github.com/ThrowTheSwitch/Unity[Unity]
+** https://github.com/siu/minunit[minunit]
+** https://cunit.sourceforge.net/[CUnit]
+
+
+== Milestones
+
+* Add useful tests of library-like code
+* Integrate with
+ https://lore.kernel.org/git/20230502211454.1673000-1-calvinwan@google.com/[stdlib
+ work]
+* Run alongside regular `make test` target
diff --git a/user-manual.html b/user-manual.html
index 13915fd79..0050db0d5 100644
--- a/user-manual.html
+++ b/user-manual.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="id-1"></a>Git User Manual</h1></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left"></td><td align="left">2023-11-20</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#_introduction">Introduction</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#pitfalls-with-submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="_introduction"></a>Introduction</h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="id-1"></a>Git User Manual</h1></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left"></td><td align="left">2023-12-09</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#_introduction">Introduction</a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#pitfalls-with-submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="_introduction"></a>Introduction</h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX
command-line skills, but no previous knowledge of Git.</p><p><a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a class="xref" href="#exploring-git-history" title="Chapter 2. Exploring Git history">Chapter 2, <i>Exploring Git history</i></a> explain how
to fetch and study a project using git—read these chapters to learn how
to build and test a particular version of a software project, search for