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).
* 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.
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.
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.