Git v2.10.3 Release Notes
=========================

Fixes since v2.10.2
-------------------

 * Extract a small helper out of the function that reads the authors
   script file "git am" internally uses.
   This by itself is not useful until a second caller appears in the
   future for "rebase -i" helper.

 * The command-line completion script (in contrib/) learned to
   complete "git cmd ^mas<HT>" to complete the negative end of
   reference to "git cmd ^master".

 * "git send-email" attempts to pick up valid e-mails from the
   trailers, but people in real world write non-addresses there, like
   "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
   on the availability and vintage of Mail::Address perl module.

 * The code that we have used for the past 10+ years to cycle
   4-element ring buffers turns out to be not quite portable in
   theoretical world.

 * "git daemon" used fixed-length buffers to turn URL to the
   repository the client asked for into the server side directory
   path, using snprintf() to avoid overflowing these buffers, but
   allowed possibly truncated paths to the directory.  This has been
   tightened to reject such a request that causes overlong path to be
   required to serve.

 * Recent update to git-sh-setup (a library of shell functions that
   are used by our in-tree scripted Porcelain commands) included
   another shell library git-sh-i18n without specifying where it is,
   relying on the $PATH.  This has been fixed to be more explicit by
   prefixing $(git --exec-path) output in front.

 * Fix for a racy false-positive test failure.

 * Portability update and workaround for builds on recent Mac OS X.

 * Update to the test framework made in 2.9 timeframe broke running
   the tests under valgrind, which has been fixed.

 * Improve the rule to convert "unsigned char [20]" into "struct
   object_id *" in contrib/coccinelle/

Also contains minor documentation updates and code clean-ups.
