An early preview release Git v2.3.0-rc0 is now available for
testing at the usual places.
With the slowness from the end-of-year holiday, this cycle turned
out to be a relatively lean one as I predicted (just 200 changes
since 2.2, as opposed to ~500 changes in an normal cycle), but that
is fine. From time to time it is OK to have a release that does not
add many new things but just fixes niggles here and there.
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.3.0-rc0'
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://code.google.com/p/git-core/
url = git://git.sourceforge.jp/gitroot/git-core/git.git
url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
url = https://github.com/gitster/git
Git v2.3 Release Notes (draft)
==
Updates since v2.2
--
Ports
* Recent gcc toolchain on Cygwin started throwing compilation warning,
which has been squelched.
UI, Workflows Features
* It was cumbersome to use GIT_SSH mechanism when the user wanted
to pass an extra set of arguments to the underlying ssh. A new
environment variable GIT_SSH_COMMAND can be used for this.
* A request to store an empty note via git notes meant to remove
note from the object but with --allow-empty we will store a
(surprise!) note that is empty.
* git interpret-trailers learned to properly handle the
Conflicts: block at the end.
* git am learned --message-id option to copy the message ID of
the incoming e-mail to the log message of resulting commit.
* git clone --reference=over there learned the --dissociate
option to go with it; it borrows objects from the reference object
store while cloning only to reduce network traffic and then
dissociates the resulting clone from the reference by performing
local copies of borrowed objects.
* git send-email learned --transfer-encoding option to force a
non-fault Content-Transfer-Encoding header (e.g. base64).
* git send-email normally identifies itself via X-Mailer: header in
the message it sends out. A new command line flag --no-xmailer
allows the user to squelch the header.
* git push into a repository with a working tree normally refuses
to modify the branch that is checked out. The command learned to
optionally do an equivalent of git reset --hard only when there
is no change to the working tree and the index instead, which would
be useful to deploy by pushing into a repository.
* git new-workdir (in contrib/) can be used to populate an empty
and existing directory now.
* Credential helpers are asked in turn until one of them give
positive response, which is cumbersome to turn off when you need to
run Git in an automated setting. The credential helper interface
learned to allow a helper to say stop, don't ask other helpers.
Also GIT_TERMINAL_PROMPT environment can be set to false to disable
our built-in prompt mechanism for passwords.
* git branch -d (delete) and git branch -m (move) learned to
honor -f (force) flag; unlike many other subcommands, the way to
force these have been with separate -D/-M options, which was
inconsistent.
* diff-highlight filter (in contrib/) allows its color output to be
customized via configuration variables.
* git imap-send learned to take -v (verbose) and -q (quiet)
command line options.
* git imap-send now can be built to use cURL library to talk to
IMAP servers (if the library is recent enough, of course).
This allows you to use authenticate method other than CRAM-MD5,
among other things.
Performance, Internal Implementation, Development Support etc.
* Earlier we made rev-list --object-edge more aggressively list the
objects at the edge commits, in order to reduce number of objects
fetched into a shallow repository, but the change affected cases
other than fetching into a shallow repository and made it
unusably slow (e.g. fetching into a normal repository should not
have to suffer the overhead from extra processing). Limit it to a
more specific case by introducing --objects-edge-aggressive, a new
option to rev-list.
* Squelched useless compiler warnings on Mac OS X regarding the
crypto API.
* The procedure to generate unicode table has been simplified.
* Some filesystems assign filemodes in a strange way, fooling then
automatic filemode trustability check done during a new
repository creation. The initialization codepath has been hardened
against this issue.
* The codepath in git remote update --prune to drop many refs has
been optimized.
* The API into get_merge_bases*() family of functions was easy to
misuse, which has been corrected to make it harder to do so.
* Long overdue departure from the assumption