A release candidate Git v2.31.0-rc1 is now available for testing
at the usual places. It is comprised of 631 non-merge commits
since v2.30.0, contributed by 67 people, 21 of which are new faces.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/testing/
The following public repositories all have a copy of the
'v2.31.0-rc1' tag and the 'master' 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
New contributors whose contributions weren't in v2.30.0 are as follows.
Welcome to the Git development community!
Andreas Bühmann, Andrew Klotz, Andrzej Hunt, Antonio Russo,
Arnaud Morin, Christian Walther, Clement Moyroud, Daniel Levin,
Daniel Troger, Harold Kim, Jacob Vosmaer, LeSeulArtichaut,
Mikhail Klyushin, Neeraj Singh, Sangeeta Jain, Seth House,
Shubham Verma, Utku Gultopu, Vasyl Vavrychuk, Vojtěch Knyttl,
and ZheNing Hu.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Abhishek Kumar, Adam Dinwoodie, Ævar Arnfjörð Bjarmason,
Alex Henrie, brian m. carlson, Christian Couder, Denton Liu,
Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong,
Felipe Contreras, Han-Wen Nienhuys, Hariom Verma, Heba Waly,
Jeff Hostetler, Jeff King, Jiang Xin, Joey Salazar, Johannes
Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano,
Kevin Daudt, Kevin Willford, Lars Schneider, Martin Ågren,
Martin von Zweigbergk, Matheus Tavares, Michael Haggerty,
Patrick Steinhardt, Paul Jolly, Peter Kaestle, Phil Hord,
Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav,
Rafael Silva, René Scharfe, Ross Light, Sergey Organov, SZEDER
Gábor, Taylor Blau, Thomas Ackermann, and Torsten Bögershausen.
[*] We are counting not just the authorship contribution but
issue reporting, testing and reviewing that are recorded
in the commit trailers.
Git 2.31 Release Notes (draft)
==
Updates since v2.30
---
Backward incompatible and other important changes
* The "pack-redundant" command, which has been left stale with almost
unusable performance issues, now warns loudly when it gets used, as
we no longer want to recommend its use (instead just "repack -d"
instead).
* The development community has adopted Contributor Covenant v2.0 to
update from v1.4 that we have been using.
* The support for deprecated PCRE1 library has been dropped.
UI, Workflows & Features
* The "--format=%(trailers)" mechanism gets enhanced to make it
easier to design output for machine consumption.
* When a user does not tell "git pull" to use rebase or merge, the
command gives a loud message telling a user to choose between
rebase or merge but creates a merge anyway, forcing users who would
want to rebase to redo the operation. Fix an early part of this
problem by tightening the condition to give the message---there is
no reason to stop or force the user to choose between rebase or
merge if the history fast-forwards.
* The configuration variable 'core.abbrev' can be set to 'no' to
force no abbreviation regardless of the hash algorithm.
* "git rev-parse" can be explicitly told to give output as absolute
or relative path with the `--path-format=(absolute|relative)` option.
* Bash completion (in contrib/) update to make it easier for
end-users to add completion for their custom "git" subcommands.
* "git maintenance" learned to drive scheduled maintenance on
platforms whose native scheduling methods are not 'cron'.
* After expiring a reflog and making a single commit, the reflog for
the branch would record a single entry that knows both @{0} and
@{1}, but we failed to answer "what commit were we on?", i.e. @{1}
* "git bundle" learns "--stdin" option to read its refs from the
standard input. Also, it now does not lose refs whey they point
at the same object.
* "git log" learned a new "--diff-merges=" option.
* "git ls-files" can and does show multiple entries when the index is
unmerged, which is a source for confusion unless -s/-u option is in
use. A new option --deduplicate has been introduced.
* `git worktree list` now annotates worktrees as prunable, shows
locked and prunable attributes in --porcelain mode, and gained
a --verbose option.
* "git clone" tries to locally check out the branch pointed at by
HEAD of the remote repository after it is done, but the protocol
did not convey the information necessary to do so when copying an
empty repository. The protocol v2 learned how to do so.
* There are other ways than ".." for a single token to denote a
"commit range", namely "^!" and "^-", but "git
range-diff" did not understand them.
* The "git range-diff" command learned "--(left|right)-only" option
to show