Git v1.7.10.4 Release Notes
===========================

Fixes since v1.7.10.3
---------------------

 * The message file for Swedish translation has been updated a bit.

 * A name taken from mailmap was copied into an internal buffer
   incorrectly and could overrun the buffer if it is too long.

 * A malformed commit object that has a header line chomped in the
   middle could kill git with a NULL pointer dereference.

 * An author/committer name that is a single character was mishandled
   as an invalid name by mistake.

 * The progress indicator for a large "git checkout" was sent to
   stderr even if it is not a terminal.

 * "git grep -e '$pattern'", unlike the case where the patterns are
   read from a file, did not treat individual lines in the given
   pattern argument as separate regular expressions as it should.

 * When "git rebase" was given a bad commit to replay the history on,
   its error message did not correctly give the command line argument
   it had trouble parsing.

Also contains minor fixes and documentation updates.
