Git 1.7.12.2 Release Notes
==========================

Fixes since v1.7.12.1
---------------------

 * Even during a conflicted merge, "git blame $path" always meant to
   blame uncommitted changes to the "working tree" version; make it
   more useful by showing cleanly merged parts as coming from the other
   branch that is being merged.

 * "git blame MAKEFILE" run in a history that has "Makefile" but not
   "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
   confused on a case insensitive filesystem and failed to do so.

 * "git fetch --all", when passed "--no-tags", did not honor the
   "--no-tags" option while fetching from individual remotes (the same
   issue existed with "--tags", but combination "--all --tags" makes
   much less sense than "--all --no-tags").

 * "git log/diff/format-patch --stat" showed the "N line(s) added"
   comment in user's locale and caused careless submitters to send
   patches with such a line in them to projects whose project language
   is not their language, mildly irritating others. Localization to
   the line has been disabled for now.

 * The subcommand to remove the definition of a remote in "git remote"
   was named "rm" even though all other subcommands were spelled out.
   Introduce "git remote remove" to remove confusion, and keep "rm" as
   a backward compatible synonym.

Also contains a handful of documentation updates.
