Skip to content

Commit d045a91

Browse files
committed
Autogenerated HTML docs for v2.51.0-480-g60f3f5
1 parent addb252 commit d045a91

File tree

5 files changed

+141
-18
lines changed

5 files changed

+141
-18
lines changed

‎BreakingChanges.adoc‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,51 @@ JGit, libgit2 and Gitoxide need to support it.
171171
matches the default branch name used in new repositories by many of the
172172
big Git forges.
173173

174+
* Git will require Rust as a mandatory part of the build process. While Git
175+
already started to adopt Rust in Git 2.49, all parts written in Rust are
176+
optional for the time being. This includes:
177+
+
178+
** The Rust wrapper around libgit.a that is part of "contrib/" and which has
179+
been introduced in Git 2.49.
180+
** Subsystems that have an alternative implementation in Rust to test
181+
interoperability between our C and Rust codebase.
182+
** Newly written features that are not mission critical for a fully functional
183+
Git client.
184+
+
185+
These changes are meant as test balloons to allow distributors of Git to prepare
186+
for Rust becoming a mandatory part of the build process. There will be multiple
187+
milestones for the introduction of Rust:
188+
+
189+
--
190+
1. Initially, with Git 2.52, support for Rust will be auto-detected by Meson and
191+
disabled in our Makefile so that the project can sort out the initial
192+
infrastructure.
193+
2. In Git 2.53, both build systems will default-enable support for Rust.
194+
Consequently, builds will break by default if Rust is not available on the
195+
build host. The use of Rust can still be explicitly disabled via build
196+
flags.
197+
3. In Git 3.0, the build options will be removed and support for Rust is
198+
mandatory.
199+
--
200+
+
201+
You can explicitly ask both Meson and our Makefile-based system to enable Rust
202+
by saying `meson configure -Drust=enabled` and `make WITH_RUST=YesPlease`,
203+
respectively.
204+
+
205+
The Git project will declare the last version before Git 3.0 to be a long-term
206+
support release. This long-term release will receive important bug fixes for at
207+
least four release cycles and security fixes for six release cycles. The Git
208+
project will hand over maintainership of the long-term release to distributors
209+
in case they need to extend the life of that long-term release even further.
210+
Details of how this long-term release will be handed over to the community will
211+
be discussed once the Git project decides to stop officially supporting it.
212+
+
213+
We will evaluate the impact on downstream distributions before making Rust
214+
mandatory in Git 3.0. If we see that the impact on downstream distributions
215+
would be significant, we may decide to defer this change to a subsequent minor
216+
release. This evaluation will also take into account our own experience with
217+
how painful it is to keep Rust an optional component.
218+
174219
=== Removals
175220

176221
* Support for grafting commits has long been superseded by git-replace(1).

‎BreakingChanges.html‎

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,76 @@ <h3 id="_changes">Changes</h3>
694694
matches the default branch name used in new repositories by many of the
695695
big Git forges.</p>
696696
</li>
697+
<li>
698+
<p>Git will require Rust as a mandatory part of the build process. While Git
699+
already started to adopt Rust in Git 2.49, all parts written in Rust are
700+
optional for the time being. This includes:</p>
701+
<divclass="ulist">
702+
<ul>
703+
<li>
704+
<p>The Rust wrapper around libgit.a that is part of "contrib/" and which has
705+
been introduced in Git 2.49.</p>
706+
</li>
707+
<li>
708+
<p>Subsystems that have an alternative implementation in Rust to test
709+
interoperability between our C and Rust codebase.</p>
710+
</li>
711+
<li>
712+
<p>Newly written features that are not mission critical for a fully functional
713+
Git client.</p>
714+
<divclass="paragraph">
715+
<p>These changes are meant as test balloons to allow distributors of Git to prepare
716+
for Rust becoming a mandatory part of the build process. There will be multiple
717+
milestones for the introduction of Rust:</p>
718+
</div>
719+
<divclass="openblock">
720+
<divclass="content">
721+
<divclass="olist arabic">
722+
<olclass="arabic">
723+
<li>
724+
<p>Initially, with Git 2.52, support for Rust will be auto-detected by Meson and
725+
disabled in our Makefile so that the project can sort out the initial
726+
infrastructure.</p>
727+
</li>
728+
<li>
729+
<p>In Git 2.53, both build systems will default-enable support for Rust.
730+
Consequently, builds will break by default if Rust is not available on the
731+
build host. The use of Rust can still be explicitly disabled via build
732+
flags.</p>
733+
</li>
734+
<li>
735+
<p>In Git 3.0, the build options will be removed and support for Rust is
736+
mandatory.</p>
737+
</li>
738+
</ol>
739+
</div>
740+
</div>
741+
</div>
742+
<divclass="paragraph">
743+
<p>You can explicitly ask both Meson and our Makefile-based system to enable Rust
744+
by saying <code>meson</code><code>configure</code><code>-Drust=enabled</code> and <code>make</code><code>WITH_RUST=YesPlease</code>,
745+
respectively.</p>
746+
</div>
747+
<divclass="paragraph">
748+
<p>The Git project will declare the last version before Git 3.0 to be a long-term
749+
support release. This long-term release will receive important bug fixes for at
750+
least four release cycles and security fixes for six release cycles. The Git
751+
project will hand over maintainership of the long-term release to distributors
752+
in case they need to extend the life of that long-term release even further.
753+
Details of how this long-term release will be handed over to the community will
754+
be discussed once the Git project decides to stop officially supporting it.</p>
755+
</div>
756+
<divclass="paragraph">
757+
<p>We will evaluate the impact on downstream distributions before making Rust
758+
mandatory in Git 3.0. If we see that the impact on downstream distributions
759+
would be significant, we may decide to defer this change to a subsequent minor
760+
release. This evaluation will also take into account our own experience with
761+
how painful it is to keep Rust an optional component.</p>
762+
</div>
763+
</li>
764+
</ul>
765+
</div>
766+
</li>
697767
</ul>
698768
</div>
699769
</div>
@@ -839,7 +909,7 @@ <h2 id="_superseded_features_that_will_not_be_deprecated">Superseded features th
839909
</div>
840910
<divid="footer">
841911
<divid="footer-text">
842-
Last updated 2025-10-02 14:07:14 -0700
912+
Last updated 2025-10-08 13:52:53 -0700
843913
</div>
844914
</div>
845915
</body>

‎RelNotes/2.52.0.adoc‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ Performance, Internal Implementation, Development Support etc.
113113
documentation, similar to "make doc".
114114
(merge ff4ec8ded0 ps/meson-build-docs later to maint).
115115
116+
* Dip our toes a bit to (optionally) use Rust implemented helper
117+
called from our C code.
118+
116119
117120
Fixes since v2.51
118121
-----------------
@@ -289,6 +292,12 @@ including security updates, are included in this release.
289292
checking has been updated to use the existing helper function.
290293
(merge ecc5749578 js/curl-off-t-fixes later to maint).
291294

295+
* "git reflog write" did not honor the configured user.name/email
296+
which has been corrected.
297+
298+
* Handling of an empty subdirectory of .git/refs/ in the ref-files
299+
backend has been corrected.
300+
292301
* Other code cleanup, docfix, build fix, etc.
293302
(merge 823d537fa7 kh/doc-git-log-markup-fix later to maint).
294303
(merge cf7efa4f33 rj/t6137-cygwin-fix later to maint).
@@ -315,3 +324,4 @@ including security updates, are included in this release.
315324
(merge fafc9b08b8 ag/doc-sendmail-gmail-example-update later to maint).
316325
(merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint).
317326
(merge e1d062e8ba ps/odb-clean-stale-wrappers later to maint).
327+
(merge fdd21ba116 mh/doc-credential-url-prefix later to maint).

‎gitcredentials.adoc‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,8 @@ pattern in the config file. For example, if you have this in your config file:
150150
username = foo
151151
--------------------------------------
152152
153-
then we will match: both protocols are the same, both hosts are the same, and
154-
the "pattern" URL does not care about the path component at all. However, this
155-
context would not match:
153+
then we will match: both protocols are the same and both hosts are the same.
154+
However, this context would not match:
156155
157156
--------------------------------------
158157
[credential "https://kernel.org"]
@@ -166,11 +165,11 @@ match: Git compares the protocols exactly. However, you may use wildcards in
166165
the domain name and other pattern matching techniques as with the `http.<URL>.*`
167166
options.
168167
169-
If the "pattern" URL does include a path component, then this too must match
170-
exactly: the context `https://example.com/bar/baz.git` will match a config
171-
entry for `https://example.com/bar/baz.git` (in addition to matching the config
172-
entry for `https://example.com`) but will not match a config entry for
173-
`https://example.com/bar`.
168+
If the "pattern" URL does include a path component, then this must match
169+
as a prefix path: the context `https://example.com/bar` will match a config
170+
entry for `https://example.com/bar/baz.git` but will not match a config entry for
171+
`https://example.com/other/repo.git` or `https://example.com/barry/repo.git`
172+
(even though it is a string prefix).
174173
175174
176175
CONFIGURATION OPTIONS

‎gitcredentials.html‎

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -664,9 +664,8 @@ <h2 id="_credential_contexts">CREDENTIAL CONTEXTS</h2>
664664
</div>
665665
</div>
666666
<divclass="paragraph">
667-
<p>then we will match: both protocols are the same, both hosts are the same, and
668-
the "pattern" URL does not care about the path component at all. However, this
669-
context would not match:</p>
667+
<p>then we will match: both protocols are the same and both hosts are the same.
668+
However, this context would not match:</p>
670669
</div>
671670
<divclass="listingblock">
672671
<divclass="content">
@@ -683,11 +682,11 @@ <h2 id="_credential_contexts">CREDENTIAL CONTEXTS</h2>
683682
options.</p>
684683
</div>
685684
<divclass="paragraph">
686-
<p>If the "pattern" URL does include a path component, then this too must match
687-
exactly: the context <code>https://example.com/bar/baz.git</code> will match a config
688-
entry for <code>https://example.com/bar/baz.git</code>(in addition to matching the config
689-
entry for <code>https://example.com</code>) but will not match a config entry for
690-
<code>https://example.com/bar</code>.</p>
685+
<p>If the "pattern" URL does include a path component, then this must match
686+
as a prefix path: the context <code>https://example.com/bar</code> will match a config
687+
entry for <code>https://example.com/bar/baz.git</code>but will not match a config entry for
688+
<code>https://example.com/other/repo.git</code> or <code>https://example.com/barry/repo.git</code>
689+
(even though it is a string prefix).</p>
691690
</div>
692691
</div>
693692
</div>
@@ -899,7 +898,7 @@ <h2 id="_git">GIT</h2>
899898
</div>
900899
<divid="footer">
901900
<divid="footer-text">
902-
Last updated 2025-06-24 11:24:02 -0700
901+
Last updated 2025-10-08 13:52:53 -0700
903902
</div>
904903
</div>
905904
</body>

0 commit comments

Comments
(0)