[plain text]

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

* 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.