GIT v1.5.4 Release Notes
========================

Updates since v1.5.3
--------------------

 * Comes with much improved gitk.

 * "progress display" from many commands are a lot nicer to the
   eye.  Transfer commands show throughput data.

 * git-reset is now built-in and its output can be squelched with -q.

 * git-send-email can optionally talk over ssmtp and use SMTP-AUTH.

 * git-rebase learned --whitespace option.

 * git-remote knows --mirror mode.

 * git-merge can call the "post-merge" hook.

 * git-pack-objects can optionally run deltification with multiple threads.

 * git-archive can optionally substitute keywords in files marked with
   export-subst attribute.

 * git-for-each-ref learned %(xxxdate:<dateformat>) syntax to
   show the various date fields in different formats.

 * git-gc --auto is a low-impact way to automatically run a
   variant of git-repack that does not lose unreferenced objects
   (read: safer than the usual one) after the user accumulates
   too many loose objects.

 * git-push has been rewritten in C.

 * git-push learned --dry-run option to show what would happen
   if a push is run.

 * git-remote learned "rm" subcommand.

 * git-rebase --interactive mode can now work on detached HEAD.

 * git-cvsserver can be run via git-shell.

 * git-am and git-rebase are far less verbose.

 * git-pull learned to pass --[no-]ff option to underlying git-merge.

 * Various Perforce importer updates.

 * git-lost-found was deprecated in favor of git-fsck's --lost-found
   option.

 * git-svnimport was removed in favor of git-svn.

 * git-bisect learned "skip" action to mark untestable commits.

 * rename detection diff family, while detecting exact matches,
   has been greatly optimized.

 * Example update and post-receive hooks have been improved.

 * In addition there are quite a few internal clean-ups. Notably

   - many fork/exec have been replaced with run-command API,
     brought from the msysgit effort.

   - introduction and more use of the option parser API.

   - enhancement and more use of the strbuf API.


Fixes since v1.5.3
------------------

All of the fixes in v1.5.3 maintenance series are included in
this release, unless otherwise noted.

--
exec >/var/tmp/1
O=v1.5.3.5-618-g5d4138a
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
