GIT v1.5.2.2 Release Notes
==========================

Fixes since v1.5.2.1
--------------------

* Usability fix

  - git-gui is shipped with its updated blame interface.  It is
    rumored that the older one was not just unusable but was
    active health hazard, but this one is actually pretty.
    Please see for yourself.

* Bugfixes

  - "git checkout fubar" was utterly confused when there is a
    branch fubar and a tag fubar at the same time.  It correctly
    checks out the branch fubar now.

  - "git clone /path/foo" to clone a local /path/foo.git
    repository left an incorrect configuration.

  - "git send-email" correctly unquotes RFC 2047 quoted names in
    the patch-email before using their values.

  - We did not accept number of seconds since epoch older than
    year 2000 as a valid timestamp.  We now interpret positive
    integers more than 8 digits as such, which allows us to
    express timestamps more recent than March 1973.

  - git-cvsimport did not work when you have GIT_DIR to point
    your repository at a nonstandard location.

  - Some systems (notably, Solaris) lack hstrerror() to make
    h_errno human readable; prepare a replacement
    implementation.

  - .gitignore file listed git-core.spec but what we generate is
    git.spec, and nobody noticed for a long time.

  - "git-merge-recursive" does not try to run file level merge
    on binary files.

  - "git-branch --track" did not create tracking configuration
    correctly when the branch name had slash in it.

  - The email address of the user specified with user.email
    configuration was overriden by EMAIL environment variable.

  - The tree parser did not warn about tree entries with
    nonsense file modes, and assumed they must be blobs.

  - "git log -z" without any other request to generate diff still
    invoked the diff machinery, wasting cycles.

* Documentation

  - Many updates to fix stale or missing documentation.

  - Although our documentation was primarily meant to be formatted
    with AsciiDoc7, formatting with AsciiDoc8 is supported better.
