Git v2.3.4 Release Notes
========================

Fixes since v2.3.3
------------------

 * The 'color.status.unmerged' configuration was not described.

 * "git log --decorate" did not reset colors correctly around the
   branch names.

 * "git -C '' subcmd" refused to work in the current directory, unlike
   "cd ''" which silently behaves as a no-op.

 * "git imap-send" learned to optionally talk with an IMAP server via
   libcURL; because there is no other option when Git is built with
   NO_OPENSSL option, use that codepath by default under such
   configuration.

 * A workaround for certain build of GPG that triggered false breakage
   in a test has been added.

 * "git rebase -i" recently started to include the number of
   commits in the insn sheet to be processed, but on a platform
   that prepends leading whitespaces to "wc -l" output, the numbers
   are shown with extra whitespaces that aren't necessary.

 * We did not parse username followed by literal IPv6 address in SSH
   transport URLs, e.g. ssh://user@[2001:db8::1]:22/repo.git
   correctly.

Also contains typofixes, documentation updates and trivial code clean-ups.
