Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
dbdcab6
lockfile: add PID file for debugging stale locks
pcasaretto Jan 22, 2026
777f5d0
doc: convert git-submodule to synopsis style
jnavila Feb 6, 2026
4f29c68
doc: finalize git-clone documentation conversion to synopsis style
jnavila Feb 6, 2026
ccaca2c
doc: fix some style issues in git-clone and for-each-ref-options
jnavila Feb 6, 2026
a34d1d5
doc: convert git-show to synopsis style
jnavila Feb 6, 2026
8600b4e
merge-file: honor merge.conflictStyle outside of a repository
ytausch Feb 7, 2026
0505666
commit: use commit_stack
rscharfe Feb 8, 2026
10c68d2
remove duplicate includes
rscharfe Feb 8, 2026
6c21e53
version: stop using the_repository
rscharfe Feb 8, 2026
168d575
t2003: modernize path existence checks using test helpers
bkkaracay Feb 9, 2026
aaf3cc3
t7003: modernize path existence checks using test helpers
SoutrikDas Feb 9, 2026
2668b6b
rerere: minor documantation update
gitster Feb 9, 2026
af5706f
xdiff-interface: stop using the_repository
rscharfe Feb 9, 2026
6bfef81
doc: rerere-options.adoc: link to git-rerere(1)
LemmingAvalanche Feb 10, 2026
5779c47
Merge branch 'pc/lockfile-pid'
gitster Feb 17, 2026
6de2d14
Merge branch 'ja/doc-synopsis-style-even-more'
gitster Feb 17, 2026
73f29c8
Merge branch 'yt/merge-file-outside-a-repository'
gitster Feb 17, 2026
e8b7e16
Merge branch 'rs/version-wo-the-repository'
gitster Feb 17, 2026
d445421
Merge branch 'rs/xdiff-wo-the-repository'
gitster Feb 17, 2026
354b8d8
Merge branch 'rs/clean-includes'
gitster Feb 17, 2026
83037cb
Merge branch 'rs/commit-commit-stack'
gitster Feb 17, 2026
70d3916
Merge branch 'bk/t2003-modernise'
gitster Feb 17, 2026
dba8cfa
Merge branch 'kh/doc-rerere-options-xref'
gitster Feb 17, 2026
11294bb
Merge branch 'sd/t7003-test-path-is-helpers'
gitster Feb 17, 2026
05e54d2
Merge branch 'jc/doc-rerere-update'
gitster Feb 17, 2026
73fd778
The 5th batch
gitster Feb 17, 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
25 changes: 21 additions & 4 deletions Documentation/RelNotes/2.54.0.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ UI, Workflows & Features
* When "git show-index" is run outside a repository, it silently
defaults to SHA-1; the tool now warns when this happens.

* "git merge-file" can be run outside a repository, but it ignored
all configuration, even the per-user ones. The command now uses
available configuration files to find its customization.


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------
Expand All @@ -39,19 +43,22 @@ Performance, Internal Implementation, Development Support etc.
string, you get a const pointer to the substring). Update code
paths that used non-const pointer to receive their results that did
not have to be non-const to adjust.
(merge fc9fd8065c cf/c23-const-preserving-strchr-updates-0 later to maint).

* Rename three functions around the commit_list data structure.
(merge 9f18d089c5 ps/commit-list-functions-renamed later to maint).

* Transaction to create objects (or not) is currently tied to the
repository, but in the future a repository can have multiple object
sources, which may have different transaction mechanisms. Make the
odb transaction API per object source.
(merge 3f67e3d021 jt/odb-transaction-per-source later to maint).

* "git merge-ours" is taught to work better in a sparse checkout.
(merge fb1b786ebf sb/merge-ours-sparse later to maint).

* Allow recording process ID of the process that holds the lock next
to a lockfile for diagnosis.

* Reduce dependency on the_repository of xdiff-interface layer.

* Code clean-up to use the commit_stack API.


Fixes since v2.53
Expand Down Expand Up @@ -90,6 +97,10 @@ Fixes since v2.53
"next" branch.
(merge c591c3ceff jc/ci-test-contrib-too later to maint).

* A handful of documentation pages have been modernized to use the
"synopsis" style.
(merge a34d1d53a6 ja/doc-synopsis-style-even-more later to maint).

* Other code cleanup, docfix, build fix, etc.
(merge d79fff4a11 jk/remote-tracking-ref-leakfix later to maint).
(merge 7a747f972d dd/t5403-modernise later to maint).
Expand All @@ -103,3 +114,9 @@ Fixes since v2.53
(merge 0728012c53 jc/diff-highlight-main-master-testfix later to maint).
(merge 831989ef38 mc/doc-send-email-signed-off-by-cc later to maint).
(merge c44b3f3203 sd/doc-my1c-api-config-reference-fix later to maint).
(merge 6c21e53bad rs/version-wo-the-repository later to maint).
(merge 10c68d2577 rs/clean-includes later to maint).
(merge 168d575719 bk/t2003-modernise later to maint).
(merge 6bfef81c9a kh/doc-rerere-options-xref later to maint).
(merge aaf3cc3d8d sd/t7003-test-path-is-helpers later to maint).
(merge 2668b6bdc4 jc/doc-rerere-update 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 @@ -81,12 +81,18 @@ endif::backend-xhtml11[]

ifdef::backend-docbook[]
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'"

[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[]
endif::backend-docbook[]

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'"

[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[]
11 changes: 11 additions & 0 deletions Documentation/config/core.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,17 @@ confusion unless you know what you are doing (e.g. you are creating a
read-only snapshot of the same index to a location different from the
repository's usual working tree).

core.lockfilePid::
If true, Git will create a PID file alongside lock files. When a
lock acquisition fails and a PID file exists, Git can provide
additional diagnostic information about the process holding the
lock, including whether it is still running. Defaults to `false`.
+
The PID file is named by inserting `~pid` before the `.lock` suffix.
For example, if the lock file is `index.lock`, the PID file will be
`index~pid.lock`. The file contains a single line in the format
`pid <value>` followed by a newline.

core.logAllRefUpdates::
Enable the reflog. Updates to a ref <ref> is logged to the file
"`$GIT_DIR/logs/<ref>`", by appending the new and old
Expand Down
4 changes: 2 additions & 2 deletions Documentation/for-each-ref-options.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ TAB %(refname)`.

`--color[=<when>]`::
Respect any colors specified in the `--format` option. The
_<when__ field must be one of `always`, `never`, or `auto` (if
`<when>` is absent, behave as if `always` was given).
_<when>_ field must be one of `always`, `never`, or `auto` (if
_<when>_ is absent, behave as if `always` was given).

`--shell`::
`--perl`::
Expand Down
54 changes: 27 additions & 27 deletions Documentation/git-clone.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ _<src>_.
with the source repository. The resulting repository
starts out without any object of its own.
+
*NOTE*: this is a possibly dangerous operation; do *not* use
NOTE: this is a possibly dangerous operation; do *not* use
it unless you understand what it does. If you clone your
repository using this option and then delete branches (or use any
other Git command that makes any existing commit unreferenced) in the
Expand All @@ -104,7 +104,8 @@ If you want to break the dependency of a repository cloned with `--shared` on
its source repository, you can simply run `git repack -a` to copy all
objects from the source repository into a pack in the cloned repository.

`--reference[-if-able] <repository>`::
`--reference=<repository>`::
`--reference-if-able=<repository>`::
If the reference _<repository>_ is on the local machine,
automatically setup `.git/objects/info/alternates` to
obtain objects from the reference _<repository>_. Using
Expand All @@ -115,7 +116,7 @@ objects from the source repository into a pack in the cloned repository.
directory is skipped with a warning instead of aborting
the clone.
+
*NOTE*: see the NOTE for the `--shared` option, and also the
NOTE: see the NOTE for the `--shared` option, and also the
`--dissociate` option.

`--dissociate`::
Expand All @@ -140,27 +141,28 @@ objects from the source repository into a pack in the cloned repository.
to the standard error stream.

`--progress`::
Progress status is reported on the standard error stream
by default when it is attached to a terminal, unless `--quiet`
Report progress status on the standard error stream
by default when attached to a terminal, unless `--quiet`
is specified. This flag forces progress status even if the
standard error stream is not directed to a terminal.

`--server-option=<option>`::
Transmit the given string to the server when communicating using
protocol version 2. The given string must not contain a NUL or LF
protocol version 2. The given string must not contain a _NUL_ or _LF_
character. The server's handling of server options, including
unknown ones, is server-specific.
When multiple `--server-option=<option>` are given, they are all
sent to the other side in the order listed on the command line.
When no ++--server-option=++__<option>__ is given from the command
When no `--server-option=<option>` is given from the command
line, the values of configuration variable `remote.<name>.serverOption`
are used instead.

`-n`::
`--no-checkout`::
No checkout of `HEAD` is performed after the clone is complete.
Do not checkout `HEAD` after the clone is complete.

`--`[`no-`]`reject-shallow`::
`--no-reject-shallow`::
`--reject-shallow`::
Fail if the source repository is a shallow repository.
The `clone.rejectShallow` configuration variable can be used to
specify the default.
Expand Down Expand Up @@ -206,18 +208,17 @@ objects from the source repository into a pack in the cloned repository.
that all these refs are overwritten by a `git remote update` in the
target repository.

`-o` _<name>_::
`--origin` _<name>_::
`-o<name>`::
`--origin=<name>`::
Instead of using the remote name `origin` to keep track of the upstream
repository, use _<name>_. Overrides `clone.defaultRemoteName` from the
config.

`-b` _<name>_::
`--branch` _<name>_::
Instead of pointing the newly created `HEAD` to the branch pointed
to by the cloned repository's `HEAD`, point to _<name>_ branch
instead. In a non-bare repository, this is the branch that will
be checked out.
`-b<name>`::
`--branch=<name>`::
Point the newly created `HEAD` to _<name>_ branch instead of the branch
pointed to by the cloned repository's `HEAD`. In a non-bare repository,
this is the branch that will be checked out.
`--branch` can also take tags and detaches the `HEAD` at that commit
in the resulting repository.

Expand All @@ -230,18 +231,17 @@ objects from the source repository into a pack in the cloned repository.
name.
This option is incompatible with `--branch` and `--mirror`.

`-u` _<upload-pack>_::
`--upload-pack` _<upload-pack>_::
When given, and the repository to clone from is accessed
via ssh, this specifies a non-default path for the command
run on the other end.
`-u<upload-pack>`::
`--upload-pack=<upload-pack>`::
Specify a non-default path for the command run on the other end when the
repository to clone from is accessed via ssh.

`--template=<template-directory>`::
Specify the directory from which templates will be used;
(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)

`-c` `<key>=<value>`::
`--config` `<key>=<value>`::
`-c<key>=<value>`::
`--config=<key>=<value>`::
Set a configuration variable in the newly-created repository;
this takes effect immediately after the repository is
initialized, but before the remote history is fetched or any
Expand All @@ -257,7 +257,7 @@ Configuration variables known to not take effect are:
`remote.<name>.mirror` and `remote.<name>.tagOpt`. Use the
corresponding `--mirror` and `--no-tags` options instead.

`--depth <depth>`::
`--depth=<depth>`::
Create a 'shallow' clone with a history truncated to the
specified number of commits. Implies `--single-branch` unless
`--no-single-branch` is given to fetch the histories near the
Expand Down Expand Up @@ -339,8 +339,8 @@ Specify the given ref storage format for the repository. The valid values are:
+
include::ref-storage-format.adoc[]

`-j` _<n>_::
`--jobs` _<n>_::
`-j<n>`::
`--jobs=<n>`::
The number of submodules fetched at the same time.
Defaults to the `submodule.fetchJobs` option.

Expand Down
3 changes: 3 additions & 0 deletions Documentation/git-merge-file.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ object store and the object ID of its blob is written to standard output.
--zdiff3::
Show conflicts in "zdiff3" style.
+
The `--diff3` and `--zdiff3` options default to the value of the
`merge.conflictStyle` configuration variable (see linkgit:git-config[1]).
--ours::
--theirs::
Expand Down
4 changes: 2 additions & 2 deletions Documentation/git-rerere.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ COMMANDS
--------

Normally, 'git rerere' is run without arguments or user-intervention.
However, it has several commands that allow it to interact with
However, it has several commands that allow users to interact with
its working state.

'clear'::
Expand All @@ -44,7 +44,7 @@ will automatically invoke this command.
'forget' <pathspec>::

Reset the conflict resolutions which rerere has recorded for the current
conflict in <pathspec>.
conflict in paths that match <pathspec>.

'diff'::

Expand Down
16 changes: 8 additions & 8 deletions Documentation/git-show.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,34 @@ git-show - Show various types of objects

SYNOPSIS
--------
[verse]
'git show' [<options>] [<object>...]
[synopsis]
git show [<options>] [<object>...]

DESCRIPTION
-----------
Shows one or more objects (blobs, trees, tags and commits).

For commits it shows the log message and textual diff. It also
presents the merge commit in a special format as produced by
'git diff-tree --cc'.
`git diff-tree --cc`.

For tags, it shows the tag message and the referenced objects.

For trees, it shows the names (equivalent to 'git ls-tree'
with --name-only).
For trees, it shows the names (equivalent to `git ls-tree`
with `--name-only`).

For plain blobs, it shows the plain contents.

Some options that 'git log' command understands can be used to
Some options that `git log` command understands can be used to
control how the changes the commit introduces are shown.

This manual page describes only the most frequently used options.


OPTIONS
-------
<object>...::
The names of objects to show (defaults to 'HEAD').
`<object>...`::
The names of objects to show (defaults to `HEAD`).
For a more complete list of ways to spell object names, see
"SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].

Expand Down
Loading