GIT v1.6.1.2 Release Notes
==========================

Fixes since v1.6.1.1
--------------------

* The logic for rename detection in internal diff used by commands like
  "git diff" and "git blame" has been optimized to avoid loading the same
  blob repeatedly.

* We did not allow writing out a blob that is larger than 2GB for no good
  reason.

* "git format-patch -o $dir", when $dir is a relative directory, used it
  as relative to the root of the work tree, not relative to the current
  directory.

* v1.6.1 introduced an optimization for "git push" into a repository (A)
  that borrows its objects from another repository (B) to avoid sending
  objects that are available in repository B, when they are not yet used
  by repository A.  However the code on the "git push" sender side was
  buggy and did not work when repository B had new objects that are not
  known by the sender.  This caused pushing into a "forked" repository
  served by v1.6.1 software using "git push" from v1.6.1 sometimes did not
  work.  The bug was purely on the "git push" sender side, and has been
  corrected.

* "git status -v" did not paint its diff output in colour even when
  color.ui configuration was set.

* "git ls-tree" learned --full-tree option to help Porcelain scripts that
  want to always see the full path regardless of the current working
  directory.

* "git grep" incorrectly searched in work tree paths even when they are
  marked as assume-unchanged.  It now searches in the index entries.

* "git gc" with no grace period needlessly ejected packed but unreachable
  objects in their loose form, only to delete them right away.
