Git v1.7.0.1 Release Notes
==========================

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

 * In a freshly created repository "rev-parse HEAD^0" complained that
   it is dangling symref, even though "rev-parse HEAD" didn't.

 * "git show :no-such-name" tried to access the index without bounds
   check, leading to a potential segfault.

 * Message from "git cherry-pick" was harder to read and use than necessary
   when it stopped due to conflicting changes.

 * We referred to ".git/refs/" throughout the documentation when we
   meant to talk about abstract notion of "ref namespace".  Because
   people's repositories often have packed refs these days, this was
   confusing.

 * "git diff --output=/path/that/cannot/be/written" did not correctly
   error out.

 * "git grep -e -pattern-that-begin-with-dash paths..." could not be
   spelled as "git grep -- -pattern-that-begin-with-dash paths..." which
   would be a GNU way to use "--" as "end of options".

 * "git grep" compiled with threading support tried to access an
   uninitialized mutex on boxes with a single CPU.

 * "git stash pop -q --index" failed because the unnecessary --index
   option was propagated to "git stash drop" that is internally run at the
   end.

And other minor fixes and documentation updates.
