* A credential helper to allow access to the Gnome keyring has been
added.
+ * When "git am" sanitizes the Subject: line, we strip the prefix from
+ "Re: subject" and also from a less common "re: subject", but left
+ even less common "RE: subject" intact.
+
* It was tempting to say "git branch --set-upstream origin/master",
but that tells Git to arrange the local branch "origin/master" to
integrate with the currently checked out branch, which is highly
* "git cherry-pick" learned the "--allow-empty-message" option to
allow it to replay a commit without any log message.
+ * After "git cherry-pick -s" gave control back to the user asking
+ help to resolve conflicts, concluding "git commit" used to need to
+ be run with "-s" if the user wants to sign it off; now the command
+ leaves the sign-off line in the log template.
+
* "git daemon" learned the "--access-hook" option to allow an
external command to decline service based on the client address,
repository path, etc.
* "git merge-base" learned "--is-ancestor A B" option to tell if A is
an ancestor of B. The result is indicated by its exit status code.
+ * The "-Xours" backend option to "git merge -s recursive" now takes
+ effect even on binary files.
+
Foreign Interface
* "git svn" has been updated to work with SVN 1.7.
+ * "git p4" learned "--conflicts" option to specify what to do when
+ encountering a conflict during "p4 submit".
+
Performance, Internal Implementation, etc. (please report possible regressions)
* Compatibility wrapper for systems that lack usable setitimer() has
been added.
+ * The option parsing of "git checkout" had error checking, dwim and
+ defaulting missing options, all mixed in the code, and issuing an
+ appropriate error message with useful context was getting harder.
+ The code has been reorganized to allow giving a proper diagnosis
+ when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a
+ good name for a branch).
+
* Many internal uses of "git merge-base" equivalent were only to see
if one commit fast-forwards to the other, which did not need the
full set of merge bases to be computed. They have been updated to
maintenance track are contained in this release (see release notes
to them for details).
+ * "git blame MAKEFILE" run in a history that has "Makefile" but not
+ "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
+ confused on a case insensitive filesystem and failed to do so.
+ (merge 9aeaab6 jc/maint-blame-no-such-path later to maint).
+
+ * Even during a conflicted merge, "git blame $path" always meant to
+ blame uncommitted changes to the "working tree" version; make it
+ more useful by showing cleanly merged parts as coming from the other
+ branch that is being merged.
+ (merge 9aeaab6 jc/maint-blame-no-such-path later to maint).
+
+ * Documentation talked about "first line of commit log" when it meant
+ the title of the commit. The description was clarified by defining
+ how the title is decided and rewording the casual mention of "first
+ line" to "title".
+ (merge 52ffe99 jw/doc-commit-title later to maint).
+
+ * The attribute system may be asked for a path that itself or its
+ leading directories no longer exists in the working tree, and it is
+ fine if we cannot open .gitattribute file in such a case. Failure
+ to open per-directory .gitattributes with error status other than
+ ENOENT and ENOTDIR should be diagnosed, but it wasn't.
+
+ * "git log --all-match --grep=A --grep=B" ought to show commits that
+ mention both A and B, but when these three options are used with
+ --author or --committer, it showed commits that mention either A or
+ B (or both) instead.
+ (merge 39f2e01 jc/maint-log-grep-all-match later to maint).
+
+ * Earlier we made the diffstat summary line that shows the number of
+ lines added/deleted localizable, but it was found irritating having
+ to see them in various languages on a list whose discussion language
+ is English.
+ (merge 218adaa nd/maint-diffstat-summary later to maint).
+
+ * "git fetch --all", when passed "--no-tags", did not honor the
+ "--no-tags" option while fetching from individual remotes (the same
+ issue existed with "--tags", but combination "--all --tags" makes
+ much less sense than "--all --no-tags").
+ (merge 8556646 dj/fetch-all-tags later to maint).
+
* The subcommand in "git remote" to remove a defined remote was
"rm" and the command did not take a fully-spelled "remove".
(merge e17dba8 nd/maint-remote-remove later to maint).