Git v1.7.1 Release Notes (draft)
================================

Updates since v1.7.0
--------------------

 * Some commands (e.g. svn and http interfaces) that interactively ask
   password can be told to use an external program given via GIT_ASKPASS.

 * "git am" learned "--keep-cr" option to handle inputs that are
   mixture of changes to files with and without CRLF line endings.

 * "git cvsimport" learned -R option to leave revision mapping between
   CVS revisions and resulting git commits.

 * "git diff --submodule" notices and descries dirty submodules.

 * "git for-each-ref" learned %(symref), %(symref:short) and %(flag)
   tokens.

 * "git hash-object --stdin-paths" can take "--no-filters" option now.

 * "git init" can be told to look at init.templatedir configuration
   variable (obviously that has to come from either /etc/gitconfig or
   $HOME/.gitconfig).

 * "git grep" learned "--no-index" option, to search inside contents that
   are not managed by git.

 * "git grep" learned --color=auto/always/never.

 * "git grep" learned to paint filename and line-number in colors.

 * "git log -p --first-parent -m" shows one-parent diff for merge
   commits, instead of showing combined diff.

 * "git merge-file" learned to use custom conflict marker size and also use
   the "union merge" behaviour.

 * "git notes" command has been rewritten in C and learned quite a
   many commands and features to help you carry notes forward across
   rebases and amends.

 * "git request-pull" identifies the commit the request is relative to in
   a more readable way.

 * "git reset" learned "--keep" option that lets you discard commits
   near the tip while preserving your local changes in a way similar
   to how "git checkout branch" does.

 * "git status" notices and descries dirty submodules.

 * "git svn" should work better when interacting with repositories
   with CRLF line endings.

 * "git imap-send" learned to support CRAM-MD5 authentication.

Fixes since v1.7.0
------------------

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

 * "git add frotz/nitfol" did not complain when the entire frotz/ directory
   was ignored.

---
exec >/var/tmp/1
echo O=$(git describe)
O=v1.7.0.3-310-g99f5b08
git shortlog --no-merges ^maint $O..
