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’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><file></em> and the <code>-CApath</code> <em><dir></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’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’s compiled-in default
+otherwise (which should be the best choice on most platforms).</p>
</dd>
<dt class="hdlist1">--smtp-user=<user></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><command></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], &size, NULL);</pre>
+ buf = odb_read_object_peeled(r->objects, sha1, argv[1], &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>