Merge branch 'nd/commit-hook-doc-fix'
[gitweb.git] / Documentation / RelNotes / 1.8.1.txt
index 3a4baa49f98635df3954f4ff3773ea3e00528547..d6f9555923ae900bd9ff04e8283b513a678c1395 100644 (file)
@@ -19,7 +19,7 @@ variable in this release.
 
 "git branch --set-upstream" is deprecated and may be removed in a
 relatively distant future.  "git branch [-u|--set-upstream-to]" has
-been introduced with a saner order of arguments.
+been introduced with a saner order of arguments to replace it.
 
 
 Updates since v1.8.0
@@ -27,20 +27,24 @@ Updates since v1.8.0
 
 UI, Workflows & Features
 
- * We used to have a workaround for a bug in ancient "less" that
-   causes it to exit without any output when the terminal is resized.
-   The bug has been fixed in "less" version 406 (June 2007), and the
-   workaround has been removed in this release.
+ * Command-line completion scripts for tcsh and zsh have been added.
+
+ * "git-prompt" scriptlet (in contrib/completion) can be told to paint
+   pieces of the hints in the prompt string in colors.
 
  * Some documentation pages that used to ship only in the plain text
    format are now formatted in HTML as well.
 
- * "git-prompt" scriptlet (in contrib/completion) can be told to paint
-   pieces of the hints in the prompt string in colors.
+ * We used to have a workaround for a bug in ancient "less" that
+   causes it to exit without any output when the terminal is resized.
+   The bug has been fixed in "less" version 406 (June 2007), and the
+   workaround has been removed in this release.
 
- * A new configuration variable "diff.context" can be used to
-   give the default number of context lines in the patch output, to
-   override the hardcoded default of 3 lines.
+ * When "git checkout" checks out a branch, it tells the user how far
+   behind (or ahead) the new branch is relative to the remote tracking
+   branch it builds upon.  The message now also advises how to sync
+   them up by pushing or pulling.  This can be disabled with the
+   advice.statusHints configuration variable.
 
  * "git config --get" used to diagnose presence of multiple
    definitions of the same variable in the same configuration file as
@@ -49,20 +53,43 @@ UI, Workflows & Features
    API regression but it is expected that nobody will notice it in
    practice.
 
+ * A new configuration variable "diff.context" can be used to
+   give the default number of context lines in the patch output, to
+   override the hardcoded default of 3 lines.
+
  * "git format-patch" learned the "--notes=<ref>" option to give
    notes for the commit after the three-dash lines in its output.
 
+ * "git log -p -S<string>" now looks for the <string> after applying
+   the textconv filter (if defined); earlier it inspected the contents
+   of the blobs without filtering.
+
  * "git log --grep=<pcre>" learned to honor the "grep.patterntype"
    configuration set to "perl".
 
- * "git replace -d <object>" now interprets <object>, instead of only
-   accepting full hex object name.
+ * "git replace -d <object>" now interprets <object> as an extended
+   SHA-1 (e.g. HEAD~4 is allowed), instead of only accepting full hex
+   object name.
 
  * "git rm $submodule" used to punt on removing a submodule working
    tree to avoid losing the repository embedded in it.  Because
    recent git uses a mechanism to separate the submodule repository
    from the submodule working tree, "git rm" learned to detect this
-   case and removes the submodule working tree when it is safe.
+   case and removes the submodule working tree when it is safe to do so.
+
+ * "git send-email" used to prompt for the sender address, even when
+   the committer identity is well specified (e.g. via user.name and
+   user.email configuration variables).  The command no longer gives
+   this prompt when not necessary.
+
+ * "git send-email" did not allow non-address garbage strings to
+   appear after addresses on Cc: lines in the patch files (and when
+   told to pick them up to find more recipients), e.g.
+
+     Cc: Stable Kernel <stable@k.org> # for v3.2 and up
+
+   The command now strips " # for v3.2 and up" part before adding the
+   remainder of this line to the list of recipients.
 
  * "git submodule add" learned to add a new submodule at the same
    path as the path where an unrelated submodule was bound to in an
@@ -70,9 +97,12 @@ UI, Workflows & Features
 
  * "git submodule sync" learned the "--recursive" option.
 
+ * "diff.submodule" configuration variable can be used to give custom
+   default value to the "git diff --submodule" option.
+
  * "git symbolic-ref" learned the "-d $symref" option to delete the
    named symbolic ref, which is more intuitive way to spell it than
-   "update-ref -d --no-deref".
+   "update-ref -d --no-deref $symref".
 
 
 Foreign Interface
@@ -83,15 +113,24 @@ Foreign Interface
  * The remote helper interface to interact with subversion
    repositories (one of the GSoC 2012 projects) has been merged.
 
+ * A new remote-helper interface for Mercurial has been added to
+   contrib/remote-helpers.
+
+ * The documentation for git(1) was pointing at a page at an external
+   site for the list of authors that no longer existed.  The link has
+   been updated to point at an alternative site.
+
 
 Performance, Internal Implementation, etc.
 
  * Compilation on Cygwin with newer header files are supported now.
 
- * The logic to generate the initial advertisement from
-   "upload-pack" (what is invoked by "git fetch" on the other side
-   of the connection) to list what refs are available in the
-   repository has been optimized.
+ * A couple of low-level implementation updates on MinGW.
+
+ * The logic to generate the initial advertisement from "upload-pack"
+   (i.e. what is invoked by "git fetch" on the other side of the
+   connection) to list what refs are available in the repository has
+   been optimized.
 
  * The logic to find set of attributes that match a given path has
    been optimized.
@@ -113,55 +152,44 @@ details).
 
  * The configuration parser had an unnecessary hardcoded limit on
    variable names that was not checked consistently.
-   (merge 0971e99 bw/config-lift-variable-name-length-limit later to maint).
 
  * The "say" function in the test scaffolding incorrectly allowed
    "echo" to interpret "\a" as if it were a C-string asking for a
    BEL output.
-   (merge 7bc0911 jc/test-say-color-avoid-echo-escape later to maint).
 
  * "git mergetool" feeds /dev/null as a common ancestor when dealing
    with an add/add conflict, but p4merge backend cannot handle
    it. Work it around by passing a temporary empty file.
-   (merge 3facc60 da/mergetools-p4 later to maint).
 
  * "git log -F -E --grep='<ere>'" failed to use the given <ere>
    pattern as extended regular expression, and instead looked for the
    string literally.
-   (merge 727b6fc jc/grep-pcre-loose-ends~1 later to maint).
 
  * "git grep -e pattern <tree>" asked the attribute system to read
    "<tree>:.gitattributes" file in the working tree, which was
    nonsense.
-   (merge 55c6168 nd/grep-true-path later to maint).
 
  * A symbolic ref refs/heads/SYM was not correctly removed with "git
    branch -d SYM"; the command removed the ref pointed by SYM
    instead.
-   (merge 13baa9f rs/branch-del-symref later to maint).
 
  * Update "remote tracking branch" in the documentation to
    "remote-tracking branch".
-   (merge a6d3bde mm/maint-doc-remote-tracking later to maint).
 
  * "git pull --rebase" run while the HEAD is detached tried to find
    the upstream branch of the detached HEAD (which by definition
    does not exist) and emitted unnecessary error messages.
-   (merge e980765 ph/pull-rebase-detached later to maint).
 
  * The refs/replace hierarchy was not mentioned in the
    repository-layout docs.
-   (merge 11fbe18 po/maint-refs-replace-docs later to maint).
 
  * Various rfc2047 quoting issues around a non-ASCII name on the
    From: line in the output from format-patch have been corrected.
-   (merge 25dc8da js/format-2047 later to maint).
 
  * Sometimes curl_multi_timeout() function suggested a wrong timeout
    value when there is no file descriptor to wait on and the http
    transport ended up sleeping for minutes in select(2) system call.
    A workaround has been added for this.
-   (merge 7202b81 sz/maint-curl-multi-timeout later to maint).
 
  * For a fetch refspec (or the result of applying wildcard on one),
    we always want the RHS to map to something inside "refs/"
@@ -170,7 +198,6 @@ details).
 
  * "git diff -G<pattern>" did not honor textconv filter when looking
    for changes.
-   (merge b1c2f57 jk/maint-diff-grep-textconv later to maint).
 
  * Some HTTP servers ask for auth only during the actual packing phase
    (not in ls-remote phase); this is not really a recommended
@@ -180,18 +207,35 @@ details).
 
  * "git p4" used to try expanding malformed "$keyword$" that spans
    across multiple lines.
-   (merge 6b2bf41 pw/maint-p4-rcs-expansion-newline later to maint).
 
  * Syntax highlighting in "gitweb" was not quite working.
-   (merge 048b399 rh/maint-gitweb-highlight-ext later to maint).
 
  * RSS feed from "gitweb" had a xss hole in its title output.
-   (merge 0f0ecf6 jk/maint-gitweb-xss later to maint).
 
  * "git config --path $key" segfaulted on "[section] key" (a boolean
    "true" spelled without "=", not "[section] key = true").
-   (merge 962c38e cn/config-missing-path later to maint).
 
  * "git checkout -b foo" while on an unborn branch did not say
    "Switched to a new branch 'foo'" like other cases.
-   (merge afa8c07 jk/checkout-out-of-unborn later to maint).
+
+ * Various codepaths have workaround for a common misconfiguration to
+   spell "UTF-8" as "utf8", but it was not used uniformly.  Most
+   notably, mailinfo (which is used by "git am") lacked this support.
+
+ * We failed to mention a file without any content change but whose
+   permission bit was modified, or (worse yet) a new file without any
+   content in the "git diff --stat" output.
+
+ * When "--stat-count" hides a diffstat for binary contents, the total
+   number of added and removed lines at the bottom was computed
+   incorrectly.
+
+ * When "--stat-count" hides a diffstat for unmerged paths, the total
+   number of affected files at the bottom of the "diff --stat" output
+   was computed incorrectly.
+
+ * "diff --shortstat" miscounted the total number of affected files
+   when there were unmerged paths.
+
+ * "update-ref -d --deref SYM" to delete a ref through a symbolic ref
+   that points to it did not remove it correctly.