Git v2.2.2 Release Notes
========================

Fixes since v2.2.1
------------------

 * "git checkout $treeish $path", when $path in the index and the
   working tree already matched what is in $treeish at the $path,
   still overwrote the $path unnecessarily.

 * "git config --get-color" did not parse its command line arguments
   carefully.

 * open() emulated on Windows platforms did not give EISDIR upon
   an attempt to open a directory for writing.

 * A few code paths used abs() when they should have used labs() on
   long integers.

 * "gitweb" used to depend on a behaviour recent CGI.pm deprecated.

 * "git init" (hence "git clone") initialized the per-repository
   configuration file .git/config with x-bit by mistake.

 * Git 2.0 was supposed to make the "simple" mode for the default of
   "git push", but it didn't.

 * "Everyday" document had a broken link.

 * The build procedure did not bother fixing perl and python scripts
   when NO_PERL and NO_PYTHON build-time configuration changed.

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