Merge branch 'nd/pretty-formats'
[gitweb.git] / Documentation / RelNotes / 1.8.3.txt
index 516d929056551e95e4bd62eaa9b496c00c919fdf..6d25165884cab25297bd98bd455081afd0c9e9da 100644 (file)
@@ -24,14 +24,68 @@ mechanism to make "git add -u" behave as if "git add -u .", it is
 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".
 
@@ -119,6 +173,14 @@ Performance, Internal Implementation, etc.
 
  * 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.
@@ -153,7 +215,7 @@ Performance, Internal Implementation, etc.
    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
@@ -163,37 +225,62 @@ Unless otherwise noted, all the fixes since v1.8.2 in the maintenance
 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
@@ -201,7 +288,6 @@ details).
    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".
@@ -213,19 +299,15 @@ details).
 
  * 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
@@ -235,7 +317,6 @@ details).
    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.