Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
48513e0
stash: reuse cached index entries in --patch temporary index
adamchainz May 22, 2026
50cd521
doc: convert git-bisect to synopsis style
jnavila May 25, 2026
ed31e28
doc: git bisect: clarify the usage of the synopsis vs actual command
jnavila May 25, 2026
25d5d60
doc: convert git-grep synopsis and options to new style
jnavila May 25, 2026
242d3aa
doc: convert git-am synopsis and options to new style
jnavila May 25, 2026
ba1c516
doc: convert git-apply synopsis and options to new style
jnavila May 25, 2026
2ef248a
doc: convert git-imap-send synopsis and options to new style
jnavila May 25, 2026
85a30b5
object.h: fix stale entries in object flag allocation table
spkrka May 25, 2026
f767dae
commit-reach: deduplicate queue entries in paint_down_to_common
spkrka May 25, 2026
a186b77
commit-reach: replace queue_has_nonstale() scan with O(1) tracking
spkrka May 25, 2026
44d04e4
receive-pack: fix updateInstead with core.worktree
alyssais May 25, 2026
ca7b9ae
t1092: test 'git restore' with sparse index
derrickstolee May 26, 2026
105aacd
restore: avoid sparse index expansion
derrickstolee May 26, 2026
7dd898a
*: replace deprecated free_commit_list
LemmingAvalanche May 28, 2026
83e7f3b
commit: remove deprecated functions
LemmingAvalanche May 28, 2026
1720422
Merge branch 'ar/receive-pack-worktree-env'
gitster Jun 7, 2026
7450009
Merge branch 'ds/restore-sparse-index'
gitster Jun 7, 2026
92b870a
Merge branch 'kh/free-commit-list'
gitster Jun 7, 2026
de5383c
Merge branch 'aj/stash-patch-optimize-temporary-index'
gitster Jun 7, 2026
6390da4
Merge branch 'kk/commit-reach-optim'
gitster Jun 7, 2026
212d255
Merge branch 'ja/doc-synopsis-style-again'
gitster Jun 7, 2026
600fe74
The 12th batch
gitster Jun 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Documentation/RelNotes/2.55.0.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,19 @@ Performance, Internal Implementation, Development Support etc.
converted to a "service" enum to improve type safety and clarify its
purpose.

* 'git restore --staged' has been optimized to avoid unnecessarily expanding
the sparse index when operating on paths within the sparse checkout
definition, by handling sparse directory entries at the tree level.

* "git stash -p" has been optimized by reusing cached index
entries in its temporary index, avoiding unnecessary lstat()
calls on unchanged files.

* The check for non-stale commits in the priority queue used by
`paint_down_to_common` and `ahead_behind` has been optimized by
replacing an O(N) scan with an O(1) counter, yielding performance
improvements in repositories with wide histories.


Fixes since v2.54
-----------------
Expand Down Expand Up @@ -241,6 +254,16 @@ Fixes since v2.54
day before the specified time, which has been corrected.
(merge b809304101 ta/approxidate-noon-fix later to maint).

* The GIT_WORK_TREE variable prepared to invoke the push-to-checkout
hook was leaking into the environment even when there was no hook
used and broke the default push-to-deploy (i.e., let "git checkout"
update the working tree only when the working tree is clean).
(merge 44d04e4426 ar/receive-pack-worktree-env later to maint).

* A batch of documentation pages has been updated to use the modern
synopsis style.
(merge 2ef248ae45 ja/doc-synopsis-style-again later to maint).

* Other code cleanup, docfix, build fix, etc.
(merge 80f4b802e9 ja/doc-difftool-synopsis-style later to maint).
(merge b96490241e jc/doc-timestamps-in-stat later to maint).
Expand All @@ -262,3 +285,4 @@ Fixes since v2.54
(merge d9982e8290 ed/check-connected-close-err-fd-2.53 later to maint).
(merge 1740cc35d0 ed/check-connected-close-err-fd later to maint).
(merge f4d7eb3d1c sp/doc-range-diff-takes-notes later to maint).
(merge 83e7f3bd2b kh/free-commit-list later to maint).
6 changes: 6 additions & 0 deletions Documentation/asciidoc.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ ifdef::doctype-manpage[]
[blockdef-open]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<literal>\\2</literal>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<emphasis>\\0</emphasis>!g'"

[blockdef-listing]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<literal>\\2</literal>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<emphasis>\\0</emphasis>!g'"

[paradef-default]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<literal>\\2</literal>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<emphasis>\\0</emphasis>!g'"
endif::doctype-manpage[]
Expand All @@ -93,6 +96,9 @@ ifdef::backend-xhtml11[]
[blockdef-open]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<code>\\2</code>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<em>\\0</em>!g'"

[blockdef-listing]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<code>\\2</code>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<em>\\0</em>!g'"

[paradef-default]
synopsis-style=template="verseparagraph",filter="sed 's!&#8230;\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|&gt;\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|&#8230;\\)!\\1<code>\\2</code>!g;s!&lt;[-a-zA-Z0-9.]\\+&gt;!<em>\\0</em>!g'"
endif::backend-xhtml11[]
6 changes: 3 additions & 3 deletions Documentation/config/am.adoc
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
am.keepcr::
`am.keepcr`::
If true, linkgit:git-am[1] will call linkgit:git-mailsplit[1]
for patches in mbox format with parameter `--keep-cr`. In this
case linkgit:git-mailsplit[1] will
not remove `\r` from lines ending with `\r\n`. Can be overridden
by giving `--no-keep-cr` from the command line.

am.threeWay::
`am.threeWay`::
By default, linkgit:git-am[1] will fail if the patch does not
apply cleanly. When set to true, this setting tells
linkgit:git-am[1] to fall back on 3-way merge if the patch
records the identity of blobs it is supposed to apply to and we
have those blobs available locally (equivalent to giving the
`--3way` option from the command line). Defaults to `false`.

am.messageId::
`am.messageId`::
Add a `Message-ID` trailer based on the email header to the
commit when using linkgit:git-am[1] (see
linkgit:git-interpret-trailers[1]). See also the `--message-id`
Expand Down
17 changes: 11 additions & 6 deletions Documentation/config/apply.adoc
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
apply.ignoreWhitespace::
When set to 'change', tells 'git apply' to ignore changes in
`apply.ignoreWhitespace`::
When set to `change`, tells `git apply` to ignore changes in
whitespace, in the same way as the `--ignore-space-change`
option.
When set to one of: no, none, never, false, it tells 'git apply' to
When set to one of: `no`, `none`, `never`, `false`, it tells `git apply` to
respect all whitespace differences.
ifndef::git-apply[]
See linkgit:git-apply[1].
endif::git-apply[]

apply.whitespace::
Tells 'git apply' how to handle whitespace, in the same way
as the `--whitespace` option. See linkgit:git-apply[1].
`apply.whitespace`::
Tells `git apply` how to handle whitespace, in the same way
as the `--whitespace` option.
ifndef::git-apply[]
See linkgit:git-apply[1].
endif::git-apply[]
36 changes: 18 additions & 18 deletions Documentation/config/grep.adoc
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
grep.lineNumber::
If set to true, enable `-n` option by default.
`grep.lineNumber`::
If set to `true`, enable `-n` option by default.

grep.column::
If set to true, enable the `--column` option by default.
`grep.column`::
If set to `true`, enable the `--column` option by default.

grep.patternType::
Set the default matching behavior. Using a value of 'basic', 'extended',
'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
`grep.patternType`::
Set the default matching behavior. Using a value of `basic`, `extended`,
`fixed`, or `perl` will enable the `--basic-regexp`, `--extended-regexp`,
`--fixed-strings`, or `--perl-regexp` option accordingly, while the
value 'default' will use the `grep.extendedRegexp` option to choose
between 'basic' and 'extended'.
value `default` will use the `grep.extendedRegexp` option to choose
between `basic` and `extended`.

grep.extendedRegexp::
If set to true, enable `--extended-regexp` option by default. This
`grep.extendedRegexp`::
If set to `true`, enable `--extended-regexp` option by default. This
option is ignored when the `grep.patternType` option is set to a value
other than 'default'.
other than `default`.

grep.threads::
`grep.threads`::
Number of grep worker threads to use. If unset (or set to 0), Git will
use as many threads as the number of logical cores available.

grep.fullName::
If set to true, enable `--full-name` option by default.
`grep.fullName`::
If set to `true`, enable `--full-name` option by default.

grep.fallbackToNoIndex::
If set to true, fall back to `git grep --no-index` if `git grep`
is executed outside of a git repository. Defaults to false.
`grep.fallbackToNoIndex`::
If set to `true`, fall back to `git grep --no-index` if `git grep`
is executed outside of a git repository. Defaults to `false`.
30 changes: 15 additions & 15 deletions Documentation/config/imap.adoc
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
imap.folder::
`imap.folder`::
The folder to drop the mails into, which is typically the Drafts
folder. For example: `INBOX.Drafts`, `INBOX/Drafts` or
`[Gmail]/Drafts`. The IMAP folder to interact with MUST be specified;
the value of this configuration variable is used as the fallback
default value when the `--folder` option is not given.

imap.tunnel::
`imap.tunnel`::
Command used to set up a tunnel to the IMAP server through which
commands will be piped instead of using a direct network connection
to the server. Required when imap.host is not set.
to the server. Required when `imap.host` is not set.

imap.host::
`imap.host`::
A URL identifying the server. Use an `imap://` prefix for non-secure
connections and an `imaps://` prefix for secure connections.
Ignored when imap.tunnel is set, but required otherwise.
Ignored when `imap.tunnel` is set, but required otherwise.

imap.user::
`imap.user`::
The username to use when logging in to the server.

imap.pass::
`imap.pass`::
The password to use when logging in to the server.

imap.port::
`imap.port`::
An integer port number to connect to on the server.
Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
Ignored when imap.tunnel is set.
Defaults to 143 for `imap://` hosts and 993 for `imaps://` hosts.
Ignored when `imap.tunnel` is set.

imap.sslverify::
`imap.sslverify`::
A boolean to enable/disable verification of the server certificate
used by the SSL/TLS connection. Default is `true`. Ignored when
imap.tunnel is set.
`imap.tunnel` is set.

imap.preformattedHTML::
`imap.preformattedHTML`::
A boolean to enable/disable the use of html encoding when sending
a patch. An html encoded patch will be bracketed with <pre>
a patch. An html encoded patch will be bracketed with `<pre>`
and have a content type of text/html. Ironically, enabling this
option causes Thunderbird to send the patch as a plain/text,
format=fixed email. Default is `false`.

imap.authMethod::
`imap.authMethod`::
Specify the authentication method for authenticating with the IMAP server.
If Git was built with the NO_CURL option, or if your curl version is older
than 7.34.0, or if you're running git-imap-send with the `--no-curl`
Expand Down
2 changes: 1 addition & 1 deletion Documentation/format-patch-caveats.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ repositories. This goes to show that this behavior does not only impact
email workflows.

Given these limitations, one might be tempted to use a general-purpose
utility like patch(1) instead. However, patch(1) will not only look for
utility like `patch`(1) instead. However, `patch`(1) will not only look for
unindented diffs (like linkgit:git-am[1]) but will try to apply indented
diffs as well.
4 changes: 2 additions & 2 deletions Documentation/format-patch-end-of-commit-message.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Any line that is of the form:

* three-dashes and end-of-line, or
* a line that begins with "diff -", or
* a line that begins with "Index: "
* a line that begins with `diff -`, or
* a line that begins with `Index: `

is taken as the beginning of a patch, and the commit log message
is terminated before the first occurrence of such a line.
Loading