GIT v1.6.0.3 Release Notes
==========================

Fixes since v1.6.0.2
--------------------

* "git archive --format=zip" did not honor core.autocrlf while
  --format=tar did.

* Continuing "git rebase -i" was very confused when the user left modified
  files in the working tree while resolving conflicts.

* Continuing "git rebase -i" was also very confused when the user left
  some staged changes in the index after "edit".

* "git rebase -i" now honors the pre-rebase hook, just like the
  other rebase implementations "git rebase" and "git rebase -m".

* "git rebase -i" incorrectly aborted when there is no commit to replay.

* Behaviour of "git diff --quiet" was inconsistent with "diff --exit-code"
  with the output redirected to /dev/null.

* "git diff --no-index" on binary files no longer outputs a bogus
  "diff --git" header line.

* "git diff" hunk header patterns with multiple elements separated by LF
  were not used correctly.

* Hunk headers in "git diff" default to using extended regular
  expressions, fixing some of the internal patterns on non-GNU
  platforms.

* New config "diff.*.xfuncname" exposes extended regular expressions
  for user specified hunk header patterns.

* "git gc" when ejecting otherwise unreachable objects from packfiles into
  loose form leaked memory.

* "git index-pack" was recently broken and mishandled objects added by
  thin-pack completion processing under memory pressure.

* "git index-pack" was recently broken and misbehaved when run from inside
  .git/objects/pack/ directory.

* "git stash apply sash@{1}" was fixed to error out.  Prior versions
  would have applied stash@{0} incorrectly.

* "git stash apply" now offers a better suggestion on how to continue
  if the working tree is currently dirty.

* "git for-each-ref --format=%(subject)" fixed for commits with no
  no newline in the message body.

* "git remote" fixed to protect printf from user input.

* "git remote show -v" now displays all URLs of a remote.

* "git checkout -b branch" was confused when branch already existed.

* "git checkout -q" once again suppresses the locally modified file list.

* "git clone -q", "git fetch -q" asks remote side to not send
  progress messages, actually making their output quiet.

* Cross-directory renames are no longer used when creating packs.  This
  allows more graceful behavior on filesystems like sshfs.

* Stale temporary files under $GIT_DIR/objects/pack are now cleaned up
  automatically by "git prune".

* "git merge" once again removes directories after the last file has
  been removed from it during the merge.

* "git merge" did not allocate enough memory for the structure itself when
  enumerating the parents of the resulting commit.

* "git blame -C -C" no longer segfaults while trying to pass blame if
   it encounters a submodule reference.

* "git rm" incorrectly claimed that you have local modifications when a
  path was merely stat-dirty.

* "git svn" fixed to display an error message when 'set-tree' failed,
   instead of a Perl compile error.

* "git submodule" fixed to handle checking out a different commit
  than HEAD after initializing the submodule.

* The "git commit" error message when there are still unmerged
  files present was clarified to match "git write-tree".

* "git init" was confused when core.bare or core.sharedRepository are set
  in system or user global configuration file by mistake.  When --bare or
  --shared is given from the command line, these now override such
  settings made outside the repositories.

* Some segfaults due to uncaught NULL pointers were fixed in multiple
  tools such as apply, reset, update-index.

* Solaris builds now default to OLD_ICONV=1 to avoid compile warnings;
  Solaris 8 does not define NEEDS_LIBICONV by default.

* "Git.pm" tests relied on unnecessarily more recent version of Perl.

* "gitweb" triggered undef warning on commits without log messages.

* "gitweb" triggered undef warnings on missing trees.

* "gitweb" now removes PATH_INFO from its URLs so users don't have
  to manually set the URL in the gitweb configuration.

* Bash completion removed support for legacy "git-fetch", "git-push"
  and "git-pull" as these are no longer installed.  Dashless form
  ("git fetch") is still however supported.

Many other documentation updates.
