Autogenerated HTML docs for v2.50.1-319-g90c077
diff --git a/RelNotes/2.51.0.adoc b/RelNotes/2.51.0.adoc
index 4eb30d2..8ff9218 100644
--- a/RelNotes/2.51.0.adoc
+++ b/RelNotes/2.51.0.adoc
@@ -82,6 +82,12 @@
  * "make coccicheck" succeeds even when spatch made suggestions, which
    has been updated to fail in such a case.
 
+ * Code clean-up around object access API.
+
+ * Define .precision to more canned parse-options type to avoid bugs
+   coming from using a variable with a wrong type to capture the
+   parsed values.
+
 
 Fixes since v2.50
 -----------------
@@ -161,6 +167,17 @@
    has been corrected.
    (merge 2b49d97fcb rp/apply-intent-to-add-fix later to maint).
 
+ * Leakfix with a new and a bit invasive test on pack-bitmap files.
+   (merge bfd5522e98 ly/load-bitmap-leakfix later to maint).
+
+ * "git fetch --prune" used to be O(n^2) expensive when there are many
+   refs, which has been corrected.
+   (merge 87d8d8c5d0 ph/fetch-prune-optim later to maint).
+
+ * When a ref creation at refs/heads/foo/bar fails, the files backend
+   now removes refs/heads/foo/ if the directory is otherwise not used.
+   (merge a3a7f20516 ps/refs-files-remove-empty-parent later to maint).
+
  * Other code cleanup, docfix, build fix, etc.
    (merge b257adb571 lo/my-first-ow-doc-update later to maint).
    (merge 8b34b6a220 ly/sequencer-update-squash-is-fixup-only later to maint).
@@ -183,3 +200,4 @@
    (merge de404249ab ps/perlless-test-fixes later to maint).
    (merge 953049eed8 ts/merge-orig-head-doc-fix later to maint).
    (merge 0c83bbc704 rj/freebsd-sysinfo-build-fix later to maint).
+   (merge ad7780b38f ps/doc-pack-refs-auto-with-files-backend-fix later to maint).
diff --git a/git-config.html b/git-config.html
index e98f654..0a84fee 100644
--- a/git-config.html
+++ b/git-config.html
@@ -8578,8 +8578,8 @@
 </dd>
 <dt class="hdlist1">sendemail.mailmap</dt>
 <dd>
-<p>If true, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--mailmap</code>,
-otherwise assume <code>--no-mailmap</code>. False by default.</p>
+<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--mailmap</code>,
+otherwise assume <code>--no-mailmap</code>. <code>False</code> by default.</p>
 </dd>
 <dt class="hdlist1">sendemail.mailmap.file</dt>
 <dd>
@@ -8669,6 +8669,12 @@
 <a href="git-send-email.html">git-send-email(1)</a> command-line options. See its
 documentation for details.</p>
 </dd>
+<dt class="hdlist1">sendemail.outlookidfix</dt>
+<dd>
+<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--outlook-id-fix</code>,
+and if <code>false</code> assume <code>--no-outlook-id-fix</code>. If not specified, it will
+behave the same way as if <code>--outlook-id-fix</code> is not specified.</p>
+</dd>
 <dt class="hdlist1">sendemail.signedOffCc (deprecated)</dt>
 <dd>
 <p>Deprecated alias for <code>sendemail.signedOffByCc</code>.</p>
diff --git a/git-pack-refs.adoc b/git-pack-refs.adoc
index 652c549..42b9005 100644
--- a/git-pack-refs.adoc
+++ b/git-pack-refs.adoc
@@ -66,7 +66,10 @@
 behavior depends on the ref format used by the repository and may change in the
 future.
 +
-	- "files": No special handling for `--auto` has been implemented.
+	- "files": Loose references are packed into the `packed-refs` file
+	  based on the ratio of loose references to the size of the
+	  `packed-refs` file. The bigger the `packed-refs` file, the more loose
+	  references need to exist before we repack.
 +
 	- "reftable": Tables are compacted such that they form a geometric
 	  sequence. For two tables N and N+1, where N+1 is newer, this
diff --git a/git-pack-refs.html b/git-pack-refs.html
index 838af3e..881e27a 100644
--- a/git-pack-refs.html
+++ b/git-pack-refs.html
@@ -521,7 +521,10 @@
 <div class="ulist">
 <ul>
 <li>
-<p>"files": No special handling for <code>--auto</code> has been implemented.</p>
+<p>"files": Loose references are packed into the <code>packed-refs</code> file
+based on the ratio of loose references to the size of the
+<code>packed-refs</code> file. The bigger the <code>packed-refs</code> file, the more loose
+references need to exist before we repack.</p>
 </li>
 <li>
 <p>"reftable": Tables are compacted such that they form a geometric
@@ -581,7 +584,7 @@
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2025-04-07 15:21:58 -0700
+Last updated 2025-07-16 14:23:57 -0700
 </div>
 </div>
 </body>
diff --git a/git-send-email.adoc b/git-send-email.adoc
index 7bd09c2..5335502 100644
--- a/git-send-email.adoc
+++ b/git-send-email.adoc
@@ -280,12 +280,14 @@
 	Path to a store of trusted CA certificates for SMTP SSL/TLS
 	certificate validation (either a directory that has been processed
 	by `c_rehash`, or a single file containing one or more PEM format
-	certificates concatenated together: see verify(1) -CAfile and
-	-CApath for more information on these). Set it to an empty string
-	to disable certificate verification. Defaults to the value of the
-	`sendemail.smtpSSLCertPath` configuration variable, if set, or the
-	backing SSL library's compiled-in default otherwise (which should
-	be the best choice on most platforms).
+	certificates concatenated together: see the description of the
+	`-CAfile` _<file>_ and the `-CApath` _<dir>_ options of
+	https://docs.openssl.org/master/man1/openssl-verify/
+	[OpenSSL's verify(1) manual page] for more information on these).
+	Set it to an empty string to disable certificate verification.
+	Defaults to the value of the `sendemail.smtpSSLCertPath` configuration
+	variable, if set, or the backing SSL library's compiled-in default
+	otherwise (which should be the best choice on most platforms).
 
 --smtp-user=<user>::
 	Username for SMTP-AUTH. Default is the value of `sendemail.smtpUser`;
@@ -598,9 +600,20 @@
 	- https://github.com/AdityaGarg8/git-credential-email[git-credential-yahoo]
 	  (cross platform, dedicated helper for authenticating Yahoo accounts)
 
+	- https://github.com/AdityaGarg8/git-credential-email[git-credential-aol]
+	  (cross platform, dedicated helper for authenticating AOL accounts)
+
 You can also see linkgit:gitcredentials[7] for more OAuth based authentication
 helpers.
 
+Proton Mail does not provide an SMTP server to send emails. If you are a paid
+customer of Proton Mail, you can use
+https://proton.me/mail/bridge[Proton Mail Bridge]
+officially provided by Proton Mail to create a local SMTP server for sending
+emails. For both free and paid users, community maintained projects like
+https://github.com/AdityaGarg8/git-credential-email[git-protonmail] can be
+used.
+
 Note: the following core Perl modules that may be installed with your
 distribution of Perl are required:
 
@@ -614,6 +627,35 @@
 https://metacpan.org/pod/Authen::SASL[Authen::SASL] and
 https://metacpan.org/pod/Mail::Address[Mail::Address].
 
+Exploiting the `sendmailCmd` option of `git send-email`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Apart from sending emails via an SMTP server, `git send-email` can also send
+emails through any application that supports sendmail-like commands. You can
+read documentation of `--sendmail-cmd=<command>` above for more information.
+This ability can be very useful if you want to use another application as an
+SMTP client for `git send-email`, or if your email provider uses proprietary
+APIs instead of SMTP to send emails.
+
+As an example, lets see how to configure https://marlam.de/msmtp/[msmtp], a
+popular SMTP client found in many Linux distributions. Edit `~/.gitconfig`
+to instruct `git-send-email` to use it for sending emails.
+
+----
+[sendemail]
+	sendmailCmd = /usr/bin/msmtp # Change this to the path where msmtp is installed
+----
+
+Links of a few such community maintained helpers are:
+
+	- https://marlam.de/msmtp/[msmtp]
+	  (popular SMTP client with many features, available for Linux and macOS)
+
+	- https://github.com/AdityaGarg8/git-credential-email[git-protonmail]
+	  (cross platform client that can send emails using the ProtonMail API)
+
+	- https://github.com/AdityaGarg8/git-credential-email[git-msgraph]
+	  (cross platform client that can send emails using the Microsoft Graph API)
 
 SEE ALSO
 --------
diff --git a/git-send-email.html b/git-send-email.html
index d8ce5c3..6ca29db 100644
--- a/git-send-email.html
+++ b/git-send-email.html
@@ -788,12 +788,14 @@
 <p>Path to a store of trusted CA certificates for SMTP SSL/TLS
 certificate validation (either a directory that has been processed
 by <code>c_rehash</code>, or a single file containing one or more PEM format
-certificates concatenated together: see verify(1) -CAfile and
--CApath for more information on these). Set it to an empty string
-to disable certificate verification. Defaults to the value of the
-<code>sendemail.smtpSSLCertPath</code> configuration variable, if set, or the
-backing SSL library&#8217;s compiled-in default otherwise (which should
-be the best choice on most platforms).</p>
+certificates concatenated together: see the description of the
+<code>-CAfile</code> <em>&lt;file&gt;</em> and the <code>-CApath</code> <em>&lt;dir&gt;</em> options of
+<a href="https://docs.openssl.org/master/man1/openssl-verify/" class="bare">https://docs.openssl.org/master/man1/openssl-verify/</a>
+[OpenSSL&#8217;s verify(1) manual page] for more information on these).
+Set it to an empty string to disable certificate verification.
+Defaults to the value of the <code>sendemail.smtpSSLCertPath</code> configuration
+variable, if set, or the backing SSL library&#8217;s compiled-in default
+otherwise (which should be the best choice on most platforms).</p>
 </dd>
 <dt class="hdlist1">--smtp-user=&lt;user&gt;</dt>
 <dd>
@@ -1156,8 +1158,8 @@
 </dd>
 <dt class="hdlist1">sendemail.mailmap</dt>
 <dd>
-<p>If true, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--mailmap</code>,
-otherwise assume <code>--no-mailmap</code>. False by default.</p>
+<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--mailmap</code>,
+otherwise assume <code>--no-mailmap</code>. <code>False</code> by default.</p>
 </dd>
 <dt class="hdlist1">sendemail.mailmap.file</dt>
 <dd>
@@ -1247,6 +1249,12 @@
 <a href="git-send-email.html">git-send-email(1)</a> command-line options. See its
 documentation for details.</p>
 </dd>
+<dt class="hdlist1">sendemail.outlookidfix</dt>
+<dd>
+<p>If <code>true</code>, makes <a href="git-send-email.html">git-send-email(1)</a> assume <code>--outlook-id-fix</code>,
+and if <code>false</code> assume <code>--no-outlook-id-fix</code>. If not specified, it will
+behave the same way as if <code>--outlook-id-fix</code> is not specified.</p>
+</dd>
 <dt class="hdlist1">sendemail.signedOffCc (deprecated)</dt>
 <dd>
 <p>Deprecated alias for <code>sendemail.signedOffByCc</code>.</p>
@@ -1388,6 +1396,10 @@
 <p><a href="https://github.com/AdityaGarg8/git-credential-email">git-credential-yahoo</a>
 (cross platform, dedicated helper for authenticating Yahoo accounts)</p>
 </li>
+<li>
+<p><a href="https://github.com/AdityaGarg8/git-credential-email">git-credential-aol</a>
+(cross platform, dedicated helper for authenticating AOL accounts)</p>
+</li>
 </ul>
 </div>
 <div class="paragraph">
@@ -1395,6 +1407,15 @@
 helpers.</p>
 </div>
 <div class="paragraph">
+<p>Proton Mail does not provide an SMTP server to send emails. If you are a paid
+customer of Proton Mail, you can use
+<a href="https://proton.me/mail/bridge">Proton Mail Bridge</a>
+officially provided by Proton Mail to create a local SMTP server for sending
+emails. For both free and paid users, community maintained projects like
+<a href="https://github.com/AdityaGarg8/git-credential-email">git-protonmail</a> can be
+used.</p>
+</div>
+<div class="paragraph">
 <p>Note: the following core Perl modules that may be installed with your
 distribution of Perl are required:</p>
 </div>
@@ -1411,6 +1432,47 @@
 <p><a href="https://metacpan.org/pod/Authen::SASL">Authen::SASL</a> and
 <a href="https://metacpan.org/pod/Mail::Address">Mail::Address</a>.</p>
 </div>
+<div class="sect2">
+<h3 id="_exploiting_the_sendmailcmd_option_of_git_send_email">Exploiting the <code>sendmailCmd</code> option of <code>git</code> <code>send-email</code></h3>
+<div class="paragraph">
+<p>Apart from sending emails via an SMTP server, <code>git</code> <code>send-email</code> can also send
+emails through any application that supports sendmail-like commands. You can
+read documentation of <code>--sendmail-cmd=</code><em>&lt;command&gt;</em> above for more information.
+This ability can be very useful if you want to use another application as an
+SMTP client for <code>git</code> <code>send-email</code>, or if your email provider uses proprietary
+APIs instead of SMTP to send emails.</p>
+</div>
+<div class="paragraph">
+<p>As an example, lets see how to configure <a href="https://marlam.de/msmtp/">msmtp</a>, a
+popular SMTP client found in many Linux distributions. Edit <code>~/.gitconfig</code>
+to instruct <code>git-send-email</code> to use it for sending emails.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[sendemail]
+        sendmailCmd = /usr/bin/msmtp # Change this to the path where msmtp is installed</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Links of a few such community maintained helpers are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="https://marlam.de/msmtp/">msmtp</a>
+(popular SMTP client with many features, available for Linux and macOS)</p>
+</li>
+<li>
+<p><a href="https://github.com/AdityaGarg8/git-credential-email">git-protonmail</a>
+(cross platform client that can send emails using the ProtonMail API)</p>
+</li>
+<li>
+<p><a href="https://github.com/AdityaGarg8/git-credential-email">git-msgraph</a>
+(cross platform client that can send emails using the Microsoft Graph API)</p>
+</li>
+</ul>
+</div>
+</div>
 </div>
 </div>
 <div class="sect1">
@@ -1432,7 +1494,7 @@
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2025-06-18 14:54:41 -0700
+Last updated 2025-07-16 14:23:57 -0700
 </div>
 </div>
 </body>
diff --git a/user-manual.adoc b/user-manual.adoc
index 7124345..8d00a9e 100644
--- a/user-manual.adoc
+++ b/user-manual.adoc
@@ -4301,11 +4301,11 @@
 
 -----------------------------------------------------------------------------
         case 0:
-                buf = read_object_with_reference(sha1, argv[1], &size, NULL);
+                buf = odb_read_object_peeled(r->objects, sha1, argv[1], &size, NULL);
 -----------------------------------------------------------------------------
 
 This is how you read a blob (actually, not only a blob, but any type of
-object).  To know how the function `read_object_with_reference()` actually
+object).  To know how the function `odb_read_object_peeled()` actually
 works, find the source code for it (something like `git grep
 read_object_with | grep ":[a-z]"` in the Git repository), and read
 the source.
diff --git a/user-manual.html b/user-manual.html
index fa83120..78e82a7 100644
--- a/user-manual.html
+++ b/user-manual.html
@@ -3085,9 +3085,9 @@
 <p>You will see both of these things throughout the code.</p>
 <p>Now, for the meat:</p>
 <pre class="screen">        case 0:
-                buf = read_object_with_reference(sha1, argv[1], &amp;size, NULL);</pre>
+                buf = odb_read_object_peeled(r-&gt;objects, sha1, argv[1], &amp;size, NULL);</pre>
 <p>This is how you read a blob (actually, not only a blob, but any type of
-object).  To know how the function <code class="literal">read_object_with_reference</code>() actually
+object).  To know how the function <code class="literal">odb_read_object_peeled</code>() actually
 works, find the source code for it (something like <code class="literal">git</code> <code class="literal">grep</code>
 <code class="literal">read_object_with</code> | <code class="literal">grep</code> ":[<code class="literal">a-z</code>]" in the Git repository), and read
 the source.</p>