Git v2.3 Release Notes
======================
+This one ended up to be a release with lots of small corrections and
+improvements without big uncomfortably exciting features. The recent
+security fix that went to 2.2.1 and older maintenance tracks is also
+contained in this update.
+
+
Updates since v2.2
------------------
* Recent gcc toolchain on Cygwin started throwing compilation warning,
which has been squelched.
+ * A few updates to build on platforms that lack tv_nsec,
+ clock_gettime, CLOCK_MONOTONIC and HMAC_CTX_cleanup (e.g. older
+ RHEL) have been added.
+
UI, Workflows & Features
* "git imap-send" learned to take "-v" (verbose) and "-q" (quiet)
command line options.
+ * "git remote add $name $URL" is now allowed when "url.$URL.insteadOf"
+ is already defined.
+
* "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.
+ * "git imap-send" now allows GIT_CURL_VERBOSE environment variable to
+ control the verbosity when talking via the cURL library.
+
+ * The prompt script (in contrib/) learned to optionally hide prompt
+ when in an ignored directory by setting GIT_PS1_HIDE_IF_PWD_IGNORED
+ shell variable.
+
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.
track are contained in this release (see the maintenance releases'
notes for details).
+ * "git http-push" over WebDAV (aka dumb http-push) was broken in
+ v2.2.2 when parsing a symbolic ref, resulting in a bogus request
+ that gets rejected by recent versions of cURL library.
+ (merge f6786c8 jk/http-push-symref-fix later to maint).
+
+ * The logic in "git bisect bad HEAD" etc. to avoid forcing the test
+ of the common ancestor of bad and good commits was broken.
+ (merge 07913d5 cc/bisect-rev-parsing later to maint).
+
+ * "git checkout-index --temp=$target $path" did not work correctly
+ for paths outside the current subdirectory in the project.
+ (merge 74c4de5 es/checkout-index-temp later to maint).
+
* The report from "git checkout" on a branch that builds on another
local branch by setting its branch.*.merge to branch name (not a
full refname) incorrectly said that the upstream is gone.
the last command in the prompt, e.g. PS1='$(__git_ps1) $? ', did
not work well, because the helper function stomped on the exit
status.
- (merge eb443e3 tf/prompt-preserve-exit-status later to maint).
-
+ (merge 6babe76 tf/prompt-preserve-exit-status later to maint).
* Recent update to "git commit" broke amending an existing commit
with bogus author/committer lines without a valid e-mail address.
configuration file .git/config with x-bit by mistake.
(merge 1f32ecf mh/config-flip-xbit-back-after-checking later to maint).
+ * Recent update in Git 2.2 started creating objects/info/packs and
+ info/refs files with permission bits tighter than user's umask.
+ (merge d91175b jk/prune-packed-server-info later to maint).
+
* Git 2.0 was supposed to make the "simple" mode for the default of
"git push", but it didn't.
(merge 00a6fa0 jk/push-simple later to maint).
* The build procedure did not bother fixing perl and python scripts
when NO_PERL and NO_PYTHON build-time configuration changed.
(merge ca2051d jk/rebuild-perl-scripts-with-no-perl-seting-change later to maint).
+
+ * The usage string of "git log" command was marked incorrectly for
+ l10n.
+ (merge e66dc0c km/log-usage-string-i18n later to maint).
+
+ * "git for-each-ref" mishandled --format="%(upstream:track)" when a
+ branch is marked to have forked from a non-existing branch.
+ (merge b6160d9 rc/for-each-ref-tracking later to maint).