* The configuration parser had an unnecessary hardcoded limit on variable names that was not checked consistently.

* The "say" function in the test scaffolding incorrectly allowed "echo" to interpret "\a" as if it were a C-string asking for a BEL output.

* "git mergetool" feeds /dev/null as a common ancestor when dealing with an add/add conflict, but p4merge backend cannot handle it. Work it around by passing a temporary empty file.

* "git log -F -E --grep='<ere>'" failed to use the given <ere> pattern as extended regular expression, and instead looked for the string literally.

* "git grep -e pattern <tree>" asked the attribute system to read "<tree>:.gitattributes" file in the working tree, which was nonsense.

* A symbolic ref refs/heads/SYM was not correctly removed with "git branch -d SYM"; the command removed the ref pointed by SYM instead.

* Earlier we fixed documentation to hyphenate "remote-tracking branch" to clarify that these are not a remote entity, but unhyphenated spelling snuck in to a few places since then.

* "git pull --rebase" run while the HEAD is detached tried to find the upstream branch of the detached HEAD (which by definition does not exist) and emitted unnecessary error messages.

* The refs/replace hierarchy was not mentioned in the repository-layout docs.

* Sometimes curl_multi_timeout() function suggested a wrong timeout value when there is no file descriptors to wait on and the http transport ended up sleeping for minutes in select(2) system call. A workaround has been added for this.

* Various rfc2047 quoting issues around a non-ASCII name on the From: line in the output from format-patch have been corrected.

* "git diff -G<pattern>" did not honor textconv filter when looking for changes.