Autogenerated HTML docs for v2.51.2-560-g57da3
diff --git a/RelNotes/2.52.0.adoc b/RelNotes/2.52.0.adoc
index 61211db..bfde4bd 100644
--- a/RelNotes/2.52.0.adoc
+++ b/RelNotes/2.52.0.adoc
@@ -57,6 +57,13 @@
 
  * Show 'P'ipe command in "git add -p".
 
+ * "git sparse-checkout" subcommand learned a new "clean" action to
+   prune otherwise unused working-tree files that are outside the
+   areas of interest.
+
+ * "git fast-import" is taught to handle signed tags, just like it
+   recently learned to handle signed commits, in different ways.
+
 
 Performance, Internal Implementation, Development Support etc.
 --------------------------------------------------------------
@@ -137,6 +144,8 @@
  * Build procedure for a few credential helpers (in contrib/) have
    been updated.
 
+ * CI improvements to handle the recent Rust integration better.
+
 
 Fixes since v2.51
 -----------------
diff --git a/cmds-mainporcelain.adoc b/cmds-mainporcelain.adoc
index 72d775f..1374aef 100644
--- a/cmds-mainporcelain.adoc
+++ b/cmds-mainporcelain.adoc
@@ -122,7 +122,7 @@
 	Switch branches.
 
 linkgit:git-tag[1]::
-	Create, list, delete or verify a tag object signed with GPG.
+	Create, list, delete or verify tags.
 
 linkgit:git-worktree[1]::
 	Manage multiple working trees.
diff --git a/git-fast-import.adoc b/git-fast-import.adoc
index 85ed7a7..b74179a 100644
--- a/git-fast-import.adoc
+++ b/git-fast-import.adoc
@@ -66,6 +66,11 @@
 remote-helpers that use the `import` capability, as they are
 already trusted to run their own code.
 
+--signed-tags=(verbatim|warn-verbatim|warn-strip|strip|abort)::
+	Specify how to handle signed tags.  Behaves in the same way
+	as the same option in linkgit:git-fast-export[1], except that
+	default is 'verbatim' (instead of 'abort').
+
 --signed-commits=(verbatim|warn-verbatim|warn-strip|strip|abort)::
 	Specify how to handle signed commits.  Behaves in the same way
 	as the same option in linkgit:git-fast-export[1], except that
diff --git a/git-fast-import.html b/git-fast-import.html
index e33ba20..6234a7a 100644
--- a/git-fast-import.html
+++ b/git-fast-import.html
@@ -523,6 +523,12 @@
 already trusted to run their own code.</p>
 </div>
 </dd>
+<dt class="hdlist1">--signed-tags=(verbatim|warn-verbatim|warn-strip|strip|abort)</dt>
+<dd>
+<p>Specify how to handle signed tags.  Behaves in the same way
+as the same option in <a href="git-fast-export.html">git-fast-export(1)</a>, except that
+default is <em>verbatim</em> (instead of <em>abort</em>).</p>
+</dd>
 <dt class="hdlist1">--signed-commits=(verbatim|warn-verbatim|warn-strip|strip|abort)</dt>
 <dd>
 <p>Specify how to handle signed commits.  Behaves in the same way
@@ -2613,7 +2619,7 @@
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2025-10-02 14:07:14 -0700
+Last updated 2025-10-28 12:16:15 -0700
 </div>
 </div>
 </body>
diff --git a/git-sparse-checkout.adoc b/git-sparse-checkout.adoc
index b5fe5da..0d1618f 100644
--- a/git-sparse-checkout.adoc
+++ b/git-sparse-checkout.adoc
@@ -9,7 +9,7 @@
 SYNOPSIS
 --------
 [verse]
-'git sparse-checkout' (init | list | set | add | reapply | disable | check-rules) [<options>]
+'git sparse-checkout' (init | list | set | add | reapply | disable | check-rules | clean) [<options>]
 
 
 DESCRIPTION
@@ -111,6 +111,37 @@
 to change which sparsity mode you are using without needing to also respecify
 all sparsity paths.
 
+'clean'::
+	Opportunistically remove files outside of the sparse-checkout
+	definition. This command requires cone mode to use recursive
+	directory matches to determine which files should be removed. A
+	file is considered for removal if it is contained within a tracked
+	directory that is outside of the sparse-checkout definition.
++
+Some special cases, such as merge conflicts or modified files outside of
+the sparse-checkout definition could lead to keeping files that would
+otherwise be removed. Resolve conflicts, stage modifications, and use
+`git sparse-checkout reapply` in conjunction with `git sparse-checkout
+clean` to resolve these cases.
++
+This command can be used to be sure the sparse index works efficiently,
+though it does not require enabling the sparse index feature via the
+`index.sparse=true` configuration.
++
+To prevent accidental deletion of worktree files, the `clean` subcommand
+will not delete any files without the `-f` or `--force` option, unless
+the `clean.requireForce` config option is set to `false`.
++
+The `--dry-run` option will list the directories that would be removed
+without deleting them. Running in this mode can be helpful to predict the
+behavior of the clean comand or to determine which kinds of files are left
+in the sparse directories.
++
+The `--verbose` option will list every file within the directories that
+are considered for removal. This option is helpful to determine if those
+files are actually important or perhaps to explain why the directory is
+still present despite the current sparse-checkout.
+
 'disable'::
 	Disable the `core.sparseCheckout` config setting, and restore the
 	working directory to include all files.
diff --git a/git-sparse-checkout.html b/git-sparse-checkout.html
index 53d9d00..8e359dc 100644
--- a/git-sparse-checkout.html
+++ b/git-sparse-checkout.html
@@ -452,7 +452,7 @@
 <h2 id="_synopsis">SYNOPSIS</h2>
 <div class="sectionbody">
 <div class="verseblock">
-<pre class="content"><em>git sparse-checkout</em> (init | list | set | add | reapply | disable | check-rules) [<options>]</pre>
+<pre class="content"><em>git sparse-checkout</em> (init | list | set | add | reapply | disable | check-rules | clean) [<options>]</pre>
 </div>
 </div>
 </div>
@@ -574,6 +574,43 @@
 all sparsity paths.</p>
 </div>
 </dd>
+<dt class="hdlist1"><em>clean</em></dt>
+<dd>
+<p>Opportunistically remove files outside of the sparse-checkout
+definition. This command requires cone mode to use recursive
+directory matches to determine which files should be removed. A
+file is considered for removal if it is contained within a tracked
+directory that is outside of the sparse-checkout definition.</p>
+<div class="paragraph">
+<p>Some special cases, such as merge conflicts or modified files outside of
+the sparse-checkout definition could lead to keeping files that would
+otherwise be removed. Resolve conflicts, stage modifications, and use
+<code>git</code> <code>sparse-checkout</code> <code>reapply</code> in conjunction with <code>git</code> <code>sparse-checkout</code>
+<code>clean</code> to resolve these cases.</p>
+</div>
+<div class="paragraph">
+<p>This command can be used to be sure the sparse index works efficiently,
+though it does not require enabling the sparse index feature via the
+<code>index.sparse=true</code> configuration.</p>
+</div>
+<div class="paragraph">
+<p>To prevent accidental deletion of worktree files, the <code>clean</code> subcommand
+will not delete any files without the <code>-f</code> or <code>--force</code> option, unless
+the <code>clean.requireForce</code> config option is set to <code>false</code>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>--dry-run</code> option will list the directories that would be removed
+without deleting them. Running in this mode can be helpful to predict the
+behavior of the clean comand or to determine which kinds of files are left
+in the sparse directories.</p>
+</div>
+<div class="paragraph">
+<p>The <code>--verbose</code> option will list every file within the directories that
+are considered for removal. This option is helpful to determine if those
+files are actually important or perhaps to explain why the directory is
+still present despite the current sparse-checkout.</p>
+</div>
+</dd>
 <dt class="hdlist1"><em>disable</em></dt>
 <dd>
 <p>Disable the <code>core.sparseCheckout</code> config setting, and restore the
@@ -1065,7 +1102,7 @@
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2025-10-20 15:09:57 -0700
+Last updated 2025-10-28 12:16:15 -0700
 </div>
 </div>
 </body>
diff --git a/git-tag.adoc b/git-tag.adoc
index 0f7badc..cea3202 100644
--- a/git-tag.adoc
+++ b/git-tag.adoc
@@ -3,7 +3,7 @@
 
 NAME
 ----
-git-tag - Create, list, delete or verify a tag object signed with GPG
+git-tag - Create, list, delete or verify tags
 
 
 SYNOPSIS
@@ -38,15 +38,17 @@
 Otherwise, a tag reference that points directly at the given object
 (i.e., a lightweight tag) is created.
 
-A GnuPG signed tag object will be created when `-s` or `-u
-<key-id>` is used.  When `-u <key-id>` is not used, the
-committer identity for the current user is used to find the
-GnuPG key for signing. 	The configuration variable `gpg.program`
-is used to specify custom GnuPG binary.
+A cryptographically signed tag object will be created when `-s` or
+`-u <key-id>` is used. The signing backend (GPG, X.509, SSH, etc.) is
+controlled by the `gpg.format` configuration variable, defaulting to
+OpenPGP. When `-u <key-id>` is not used, the committer identity for
+the current user is used to find the key for signing. The
+configuration variable `gpg.program` is used to specify a custom
+signing binary.
 
 Tag objects (created with `-a`, `-s`, or `-u`) are called "annotated"
 tags; they contain a creation date, the tagger name and e-mail, a
-tagging message, and an optional GnuPG signature. Whereas a
+tagging message, and an optional cryptographic signature. Whereas a
 "lightweight" tag is simply a name for an object (usually a commit
 object).
 
@@ -64,10 +66,12 @@
 
 `-s`::
 `--sign`::
-	Make a GPG-signed tag, using the default e-mail address's key.
-	The default behavior of tag GPG-signing is controlled by `tag.gpgSign`
-	configuration variable if it exists, or disabled otherwise.
-	See linkgit:git-config[1].
+	Make a cryptographically signed tag, using the default signing
+	key. The signing backend used depends on the `gpg.format`
+	configuration variable. The default key is determined by the
+	backend. For GPG, it's based on the committer's email address,
+	while for SSH it may be a specific key file or agent
+	identity. See linkgit:git-config[1].
 
 `--no-sign`::
 	Override `tag.gpgSign` configuration variable that is
@@ -75,7 +79,10 @@
 
 `-u <key-id>`::
 `--local-user=<key-id>`::
-	Make a GPG-signed tag, using the given key.
+	Make a cryptographically signed tag using the given key. The
+	format of the <key-id> and the backend used depend on the
+	`gpg.format` configuration variable. See
+	linkgit:git-config[1].
 
 `-f`::
 `--force`::
@@ -87,7 +94,7 @@
 
 `-v`::
 `--verify`::
-	Verify the GPG signature of the given tag names.
+	Verify the cryptographic signature of the given tags.
 
 `-n<num>`::
 	_<num>_ specifies how many lines from the annotation, if any,
@@ -235,12 +242,23 @@
 
 -------------------------------------
 [user]
-    signingKey = <gpg-key-id>
+    signingKey = <key-id>
 -------------------------------------
 
+The signing backend can be chosen via the `gpg.format` configuration
+variable, which defaults to `openpgp`. See linkgit:git-config[1]
+for a list of other supported formats.
+
+The path to the program used for each signing backend can be specified
+with the `gpg.<format>.program` configuration variable. For the
+`openpgp` backend, `gpg.program` can be used as a synonym for
+`gpg.openpgp.program`. See linkgit:git-config[1] for details.
+
 `pager.tag` is only respected when listing tags, i.e., when `-l` is
 used or implied. The default is to use a pager.
-See linkgit:git-config[1].
+
+See linkgit:git-config[1] for more details and other configuration
+variables.
 
 DISCUSSION
 ----------
diff --git a/git-tag.html b/git-tag.html
index f75aa6a..a5556ba 100644
--- a/git-tag.html
+++ b/git-tag.html
@@ -444,7 +444,7 @@
 <h1>git-tag(1) Manual Page</h1>
 <h2 id="_name">NAME</h2>
 <div class="sectionbody">
-<p>git-tag - Create, list, delete or verify a tag object signed with GPG</p>
+<p>git-tag - Create, list, delete or verify tags</p>
 </div>
 </div>
 <div id="content">
@@ -489,16 +489,18 @@
 (i.e., a lightweight tag) is created.</p>
 </div>
 <div class="paragraph">
-<p>A GnuPG signed tag object will be created when <code>-s</code> or <code>-u</code>
-<em><key-id></em> is used.  When <code>-u</code> <em><key-id></em> is not used, the
-committer identity for the current user is used to find the
-GnuPG key for signing. 	The configuration variable <code>gpg.program</code>
-is used to specify custom GnuPG binary.</p>
+<p>A cryptographically signed tag object will be created when <code>-s</code> or
+<code>-u</code> <em><key-id></em> is used. The signing backend (GPG, X.509, SSH, etc.) is
+controlled by the <code>gpg.format</code> configuration variable, defaulting to
+OpenPGP. When <code>-u</code> <em><key-id></em> is not used, the committer identity for
+the current user is used to find the key for signing. The
+configuration variable <code>gpg.program</code> is used to specify a custom
+signing binary.</p>
 </div>
 <div class="paragraph">
 <p>Tag objects (created with <code>-a</code>, <code>-s</code>, or <code>-u</code>) are called "annotated"
 tags; they contain a creation date, the tagger name and e-mail, a
-tagging message, and an optional GnuPG signature. Whereas a
+tagging message, and an optional cryptographic signature. Whereas a
 "lightweight" tag is simply a name for an object (usually a commit
 object).</p>
 </div>
@@ -523,10 +525,12 @@
 <dt class="hdlist1"><code>-s</code></dt>
 <dt class="hdlist1"><code>--sign</code></dt>
 <dd>
-<p>Make a GPG-signed tag, using the default e-mail address’s key.
-The default behavior of tag GPG-signing is controlled by <code>tag.gpgSign</code>
-configuration variable if it exists, or disabled otherwise.
-See <a href="git-config.html">git-config(1)</a>.</p>
+<p>Make a cryptographically signed tag, using the default signing
+key. The signing backend used depends on the <code>gpg.format</code>
+configuration variable. The default key is determined by the
+backend. For GPG, it’s based on the committer’s email address,
+while for SSH it may be a specific key file or agent
+identity. See <a href="git-config.html">git-config(1)</a>.</p>
 </dd>
 <dt class="hdlist1"><code>--no-sign</code></dt>
 <dd>
@@ -536,7 +540,10 @@
 <dt class="hdlist1"><code>-u</code> <em><key-id></em></dt>
 <dt class="hdlist1"><code>--local-user=</code><em><key-id></em></dt>
 <dd>
-<p>Make a GPG-signed tag, using the given key.</p>
+<p>Make a cryptographically signed tag using the given key. The
+format of the <key-id> and the backend used depend on the
+<code>gpg.format</code> configuration variable. See
+<a href="git-config.html">git-config(1)</a>.</p>
 </dd>
 <dt class="hdlist1"><code>-f</code></dt>
 <dt class="hdlist1"><code>--force</code></dt>
@@ -551,7 +558,7 @@
 <dt class="hdlist1"><code>-v</code></dt>
 <dt class="hdlist1"><code>--verify</code></dt>
 <dd>
-<p>Verify the GPG signature of the given tag names.</p>
+<p>Verify the cryptographic signature of the given tags.</p>
 </dd>
 <dt class="hdlist1"><code>-n</code><em><num></em></dt>
 <dd>
@@ -731,13 +738,27 @@
 <div class="listingblock">
 <div class="content">
 <pre>[user]
-    signingKey = <gpg-key-id></pre>
+    signingKey = <key-id></pre>
 </div>
 </div>
 <div class="paragraph">
+<p>The signing backend can be chosen via the <code>gpg.format</code> configuration
+variable, which defaults to <code>openpgp</code>. See <a href="git-config.html">git-config(1)</a>
+for a list of other supported formats.</p>
+</div>
+<div class="paragraph">
+<p>The path to the program used for each signing backend can be specified
+with the <code>gpg.</code><em><format></em><code>.program</code> configuration variable. For the
+<code>openpgp</code> backend, <code>gpg.program</code> can be used as a synonym for
+<code>gpg.openpgp.program</code>. See <a href="git-config.html">git-config(1)</a> for details.</p>
+</div>
+<div class="paragraph">
 <p><code>pager.tag</code> is only respected when listing tags, i.e., when <code>-l</code> is
-used or implied. The default is to use a pager.
-See <a href="git-config.html">git-config(1)</a>.</p>
+used or implied. The default is to use a pager.</p>
+</div>
+<div class="paragraph">
+<p>See <a href="git-config.html">git-config(1)</a> for more details and other configuration
+variables.</p>
 </div>
 </div>
 </div>
@@ -1049,7 +1070,7 @@
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2025-10-14 14:37:27 -0700
+Last updated 2025-10-28 12:16:15 -0700
 </div>
 </div>
 </body>
diff --git a/git.html b/git.html
index 5e93154..3b6c722 100644
--- a/git.html
+++ b/git.html
@@ -911,7 +911,7 @@
 </dd>
 <dt class="hdlist1"><a href="git-tag.html">git-tag(1)</a></dt>
 <dd>
-<p>Create, list, delete or verify a tag object signed with GPG.</p>
+<p>Create, list, delete or verify tags.</p>
 </dd>
 <dt class="hdlist1"><a href="git-worktree.html">git-worktree(1)</a></dt>
 <dd>