[ANNOUNCE] Git v2.25.1

From: Junio C Hamano
Date: Mon Feb 17 2020 - 01:40:13 EST

The latest maintenance release Git v2.25.1 is now available at
the usual places.

The tarballs are found at:


The following public repositories all have a copy of the 'v2.25.1'
tag and the 'maint' branch that the tag points at:

url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = https://github.com/gitster/git


Git 2.25.1 Release Notes

Fixes since v2.25

* "git commit" gives output similar to "git status" when there is
nothing to commit, but without honoring the advise.statusHints
configuration variable, which has been corrected.

* has_object_file() said "no" given an object registered to the
system via pretend_object_file(), making it inconsistent with
read_object_file(), causing lazy fetch to attempt fetching an
empty tree from promisor remotes.

* The code that tries to skip over the entries for the paths in a
single directory using the cache-tree was not careful enough
against corrupt index file.

* Complete an update to tutorial that encourages "git switch" over
"git checkout" that was done only half-way.

* Reduce unnecessary round-trip when running "ls-remote" over the
stateless RPC mechanism.

* "git restore --staged" did not correctly update the cache-tree
structure, resulting in bogus trees to be written afterwards, which
has been corrected.

* The code recently added to move to the entry beyond the ones in the
same directory in the index in the sparse-cone mode did not count
the number of entries to skip over incorrectly, which has been

* Work around test breakages caused by custom regex engine used in
libasan, when address sanitizer is used with more recent versions
of gcc and clang.

* "git fetch --refmap=" option has got a better documentation.

* Corner case bugs in "git clean" that stems from a (necessarily for
performance reasons) awkward calling convention in the directory
enumeration API has been corrected.

* "git grep --no-index" should not get affected by the contents of
the .gitmodules file but when "--recurse-submodules" is given or
the "submodule.recurse" variable is set, it did. Now these
settings are ignored in the "--no-index" mode.

* Technical details of the bundle format has been documented.

* Unhelpful warning messages during documentation build have been

Also contains various documentation updates, code clean-ups and minor fixups.


Changes since v2.25.0 are as follows:

Denton Liu (2):
.mailmap: fix erroneous authorship for Johannes Schindelin
.mailmap: map Yi-Jyun Pan's email

Derrick Stolee (3):
unpack-trees: correctly compute result count
clean: demonstrate a bug with pathspecs
fetch: document and test --refmap=""

Elijah Newren (2):
string-list: note in docs that callers can specify sorting function
dir: treat_leading_path() and read_directory_recursive(), round 2

Emily Shaffer (2):
unpack-trees: watch for out-of-range index position
submodule: add newline on invalid submodule error

Heba Waly (2):
commit: honor advice.statusHints when rejecting an empty commit
doc/gitcore-tutorial: fix prose to match example command

Jacques Bodin-Hullin (1):
parse-options: lose an unnecessary space in an error message

Jeff King (7):
restore: invalidate cache-tree when removing entries with --staged
transport: don't flush when disconnecting stateless-rpc helper
dir: restructure in a way to avoid passing around a struct dirent
dir: point treat_leading_path() warning to the right place
Makefile: use compat regex with SANITIZE=address
t4018: drop "debugging" cat from hunk-header tests
t7800: don't rely on reuse_worktree_file()

Johannes Berg (1):
pack-format: correct multi-pack-index description

Johannes Schindelin (3):
msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x
ci: ignore rubygems warning in the "Documentation" job
convert: fix typo

Jonathan Tan (2):
sha1-file: remove OBJECT_INFO_SKIP_CACHED
t5616: make robust to delta base change

Junio C Hamano (2):
.mailmap: fix GGG authoship screwup
Git 2.25.1

Kyle Meyer (1):
submodule foreach: replace $path with $sm_path in example

Martin Ãgren (2):
git-filter-branch.txt: wrap "maths" notation in backticks
diff-options.txt: avoid "regex" overload in example

Masaya Suzuki (1):
doc: describe Git bundle format

Philippe Blain (1):
grep: ignore --recurse-submodules if --no-index is given

Ralf Thielow (1):
submodule.c: mark more strings for translation

brian m. carlson (7):
run-command: avoid undefined behavior in exists_in_PATH
docs: use "currently" for the present time
doc: move author and committer information to git-commit(1)
docs: expand on possible and recommended user config options
doc: provide guidance on user.name format
doc: dissuade users from trying to ignore tracked files
docs: mention when increasing http.postBuffer is valuable