important for those who are used to "git add -u" (without pathspec)
updating the index only for paths in the current subdirectory to start
training their fingers to explicitly say "git add -u ." when they mean
-it before Git 2.0 comes.
+it before Git 2.0 comes. A warning is issued when these commands are
+run without a pathspec and when you have local changes outside the
+current directory, because the behaviour in Git 2.0 will be different
+from today's version in such a situation.
+
+In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
+that "git add dir/" will notice paths you removed from the directory
+and record the removal. Versions before Git 2.0, including this
+release, will keep ignoring removals, but the users who rely on this
+behaviour is encouraged to use "git add --ignore-removal <path>" and
+get used to it.
Updates since v1.8.2
--------------------
+Foreign interface
+
+ * remote-hg and remote-bzr helpers (in contrib/) have been updated.
+
+
UI, Workflows & Features
+ * "git branch --vv" learned to paint the name of the branch it
+ integrates with in a different color (color.branch.upstream,
+ which defaults to blue).
+
+ * In a sparsely populated working tree, "git checkout <pathspec>" no
+ longer unmarks paths that match the given pathspec that were
+ originally ignored with "--sparse" (use --ignore-skip-worktree-bits
+ option to resurrect these paths out of the index if you really want
+ to).
+
+ * "git log --format" specifier learned %C(auto) token that tells Git
+ to use color when interpolating %d (decoration), %h (short commit
+ object name), etc. for terminal output.
+
+ * "git bisect" leaves the final outcome as a comment in its bisect
+ log file.
+
+ * "git clone --reference" can now refer to a gitfile "textual symlink"
+ that points at the real location of the repository.
+
+ * "git count-objects" learned "--human-readable" aka "-H" option to
+ show various large numbers in Ki/Mi/GiB scaled as necessary.
+
+ * "git cherry-pick $blob" and "git cherry-pick $tree" are nonsense,
+ and a more readable error message e.g. "can't cherry-pick a tree"
+ is given (we used to say "expected exactly one commit").
+
+ * The "--annotate" option to "git send-email" can be turned on (or
+ off) by default with sendemail.annotate configuration variable (you
+ can use --no-annotate from the command line to override it).
+
+ * The "--cover-letter" option to "git format-patch" can be turned on
+ (or off) by default with format.coverLetter configuration
+ variable. By setting it to 'auto', you can turn it on only for a
+ series with two or more patches.
+
+ * The bash completion support (in contrib/) learned that cherry-pick
+ takes a few more options than it already knew about.
+
* "git help" learned "-g" option to show the list of guides just like
list of commands are given with "-a".
* Updates for building under msvc.
+ * A handful of issues in the code to traverse working tree to find
+ untracked and/or ignored files have been fixed, and the general
+ codepath involved in "status -u" and "clean" have been cleaned up
+ and optimized.
+
+ * The stack footprint of some codepaths that access an object from a
+ pack has been shrunk.
+
* The logic to coalesce the same lines removed from the parents in
the output from "diff -c/--cc" has been updated, but with an O(n^2)
complexity, so this might turn out to be undesirable.
conflicts have been applied.
-Also contains minor documentation updates and code clean-ups.
+Also contains various documentation updates and code clean-ups.
Fixes since v1.8.2
track are contained in this release (see release notes to them for
details).
+ * When receive-pack detects error in the pack header it received in
+ order to decide which of unpack-objects or index-pack to run, it
+ returned without closing the error stream, which led to a hang
+ sideband thread.
+
+ * Zsh completion forgot that '%' character used to signal untracked
+ files needs to be escaped with another '%'.
+
+ * A commit object whose author or committer ident are malformed
+ crashed some code that trusted that a name, an email and an
+ timestamp can always be found in it.
+
+ * When "upload-pack" fails while generating a pack in response to
+ "git fetch" (or "git clone"), the receiving side mistakenly said
+ there was a programming error to trigger the die handler
+ recursively.
+
+ * "rev-list --stdin" and friends kept bogus pointers into input
+ buffer around as human readble object names. This was not a huge
+ problem but was exposed by a new change that uses these names in
+ error output.
+ (merge 70d26c6 tr/copy-revisions-from-stdin later to maint).
+
+ * Smart-capable HTTP servers were not restricted via the
+ GIT_NAMESPACE mechanism when talking with commit-walker clients,
+ like they do when talking with smart HTTP clients.
+ (merge 6130f86 jk/http-dumb-namespaces later to maint).
+
+ * "git merge-tree" did not omit a merge result that is identical to
+ "our" side in certain cases.
+ (merge aacecc3 jk/merge-tree-added-identically later to maint).
+
* Perl scripts like "git-svn" closed (not redirecting to /dev/null)
the standard error stream, which is not a very smart thing to do.
Later open may return file descriptor #2 for unrelated purpose, and
error reporting code may write into them.
- (merge a749c0b tr/perl-keep-stderr-open later to maint).
* "git show-branch" was not prepared to show a very long run of
ancestor operators e.g. foobar^2~2^2^2^2...^2~4 correctly.
- (merge aaa07e3 jk/show-branch-strbuf later to maint).
* "git diff --diff-algorithm algo" is also understood as "git diff
--diff-algorithm=algo".
- (merge 0895c6d jk/diff-algo-finishing-touches later to maint).
* The new core.commentchar configuration was not applied to a few
places.
- (merge 89c3bbd rt/commentchar-fmt-merge-msg later to maint).
* "git bundle" did not like a bundle created using a commit without
any message as its one of the prerequistes.
- (merge 5446e33 lf/bundle-with-tip-wo-message later to maint).
* "git log -S/-G" started paying attention to textconv filter, but
there was no way to disable this. Make it honor --no-textconv
option.
- (merge 61690bf sr/log-SG-no-textconv later to maint).
* When used with "-d temporary-directory" option, "git filter-branch"
failed to come back to the original working tree to perform the
final clean-up procedure.
- (merge 9727601 jk/filter-branch-come-back-to-original later to maint).
* "git merge $(git rev-parse v1.8.2)" behaved quite differently from
"git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did
notice the type of the tag object, in addition to the dwim_ref()
based classification the current code uses (i.e. the name appears
in refs/tags/) to decide when to special case merging of tags.
- (merge a38d3d7 jc/merge-tag-object later to maint).
* Fix 1.8.1.x regression that stopped matching "dir" (without
trailing slash) to a directory "dir".
* The prompt string generator (in contrib/completion/) did not notice
when we are in a middle of a "git revert" session.
- (merge 3ee4452 rr/prompt-revert-head later to maint).
* "submodule summary --summary-limit" option did not support
"--option=value" form.
- (merge 862ae6c rs/submodule-summary-limit later to maint).
* "index-pack --fix-thin" used an uninitialized value to compute
delta depths of objects it appends to the resulting pack.
- (merge 57165db jk/index-pack-correct-depth-fix later to maint).
* "index-pack --verify-stat" used a few counters outside protection
of mutex, possibly showing incorrect numbers.
- (merge 8f82aad nd/index-pack-threaded-fixes later to maint).
* The code to keep track of what directory names are known to Git on
platforms with case insensitive filesystems can get confused upon a
correctly to the ls-remote and fetch with recent version of Git.
* Recent optimization broke shallow clones.
- (merge f59de5d jk/peel-ref later to maint).
* "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
instead the parser kept reading beyond the end of the string.