shorter than a page).
* The logic and data used to compute the display width needed for
- UTF-8 strings have been updated to match Unicode 6.3 better.
+ UTF-8 strings have been updated to match Unicode 7.0 better.
* HTTP-based transports learned to propagate the error messages from
the webserver better to the client coming over the HTTP transport.
+ * The completion script for bash (in contrib/) has been updated to
+ handle aliases that define complex sequence of commands better.
+
* The "core.preloadindex" configuration variable is by default
enabled, allowing modern platforms to take advantage of the
multiple cores they have.
* "git replace" learned the "--edit" subcommand.
+ * "git send-email" learned "--to-cover" and "--cc-cover" options, to
+ tell it to copy To: and Cc: headers found in the first input file
+ when emitting later input files.
+
* "git svn" learned to cope with malformed timestamps with only one
digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted
by some broken subversion server implementations.
* "git tag" when editing the tag message shows the name of the tag
being edited as a comment in the editor.
+ * "git verify-commit" command to check GPG signature in signed
+ commits, in a way similar to "git verify-tag" is used to check
+ signed tags, was added.
+
Performance, Internal Implementation, etc.
* Build procedure for 'subtree' (in contrib/) has been cleaned up.
+ * Effort to shrink the size of patches Windows folks maintain on top
+ by upstreaming them continues.
+
+ * Patches maintained by msysgit folks for Windows port are being
+ upstreamed here a bit by bit.
+
+ * The leaf function to check validity of a refname format has been
+ micro-optimized, using SSE2 instructions when available. A few
+ breakages during its development have been caught and fixed already
+ but there might remain some more still; please test and report if
+ you find any.
+
* The `core.deltabasecachelimit` used to default to 16 MiB , but this
proved to be too small, and has been bumped to 96 MiB.
* Mishandling of patterns in .gitignore that has trailing SPs quoted
with backslashes (e.g. ones that end with "\ ") have been
corrected.
- (merge e61a6c1 pb/trim-trailing-spaces later to maint).
+ (merge 97c1364be6b pb/trim-trailing-spaces later to maint).
* Reworded the error message given upon a failure to open an existing
loose object file due to e.g. permission issues; it was reported as
the object being corrupt, but that is not quite true.
(merge d6c8a05 jk/report-fail-to-read-objects-better later to maint).
+ * "git log -2master" is a common typo that shows two commits starting
+ from whichever random branch that is not 'master' that happens to
+ be checked out currently.
+ (merge e3fa568 jc/revision-dash-count-parsing later to maint).
+
+ * Code to avoid adding the same alternate object store twice was
+ subtly broken for a long time, but nobody seems to have noticed.
+ (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint).
+
* The "%<(10,trunc)%s" pretty format specifier in the log family of
commands is used to truncate the string to a given length (e.g. 10
in the example) with padding to column-align the output, but did
columns are different.
(merge 7d50987 as/pretty-truncate later to maint).
+ * "%G" (nothing after G) is an invalid pretty format specifier, but
+ the parser did not notice it as garbage.
+ (merge 958b2eb jk/pretty-G-format-fixes later to maint).
+
+ * A handful of code paths had to read the commit object more than
+ once when showing header fields that are usually not parsed. The
+ internal data structure to keep track of the contents of the commit
+ object has been updated to reduce the need for this double-reading,
+ and to allow the caller find the length of the object.
+ (merge 218aa3a jk/commit-buffer-length later to maint).
+
* The "mailmap.file" configuration option did not support the tilde
expansion (i.e. ~user/path and ~/path).
(merge 9352fd5 ow/config-mailmap-pathname later to maint).
line endings.
(merge 4d4813a bc/blame-crlf-test later to maint).
+ * "git clone -b brefs/tags/bar" would have mistakenly thought we were
+ following a single tag, even though it was a name of the branch,
+ because it incorrectly used strstr().
+ (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint).
+
* "git commit --allow-empty-messag -C $commit" did not work when the
commit did not have any log message.
(merge 076cbd6 jk/commit-C-pick-empty later to maint).
from scratch anyway.
(merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint).
+ * Recent updates to "git repack" started to duplicate objects that
+ are in packfiles marked with .keep flag into the new packfile by
+ mistake.
+ (merge d078d85 jk/repack-pack-keep-objects later to maint).
+
* "git rerere forget" did not work well when merge.conflictstyle
was set to a non-default value.
(merge de3d8bb fc/rerere-conflict-style later to maint).
emptying the insn sheet.
(merge ddb5432 rr/rebase-autostash-fix later to maint).
+ * During "git rebase --merge", a conflicted patch could not be
+ skipped with "--skip" if the next one also conflicted.
+ (merge 95104c7 bc/fix-rebase-merge-skip later to maint).
+
* "git show -s" (i.e. show log message only) used to incorrectly emit
an extra blank line after a merge commit.
(merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint).
them.
(merge c215d3d jl/status-added-submodule-is-never-ignored later to maint).
+ * Documentation for "git submodule sync" forgot to say that the subcommand
+ can take the "--recursive" option.
+ (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint).
+
* "git update-index --cacheinfo" in 2.0 release crashed on a
malformed command line.
(merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint).