Merge branch 'bw/rebase-merge-entire-branch'
[gitweb.git] / Documentation / RelNotes / 2.8.0.txt
index 6eb16ebb6f7c39d962abc4d03ffadee3162bf528..25079710fa28155cf8d2747d9cbca14fcd84f360 100644 (file)
@@ -34,7 +34,7 @@ UI, Workflows & Features
    have a place to store the updated notes tree, iow, a ref).
 
  * "git grep" by default does not fall back to its "--no-index"
-   behaviour outside a directory under Git's control (otherwise the
+   behavior outside a directory under Git's control (otherwise the
    user may by mistake end up running a huge recursive search); with a
    new configuration (set in $HOME/.gitconfig--by definition this
    cannot be set in the config file per project), this safety can be
@@ -55,7 +55,7 @@ UI, Workflows & Features
 
  * Many commands that read files that are expected to contain text
    that is generated (or can be edited) by the end user to control
-   their behaviour (e.g. "git grep -f <filename>") have been updated
+   their behavior (e.g. "git grep -f <filename>") have been updated
    to be more tolerant to lines that are terminated with CRLF (they
    used to treat such a line to contain payload that ends with CR,
    which is usually not what the users expect).
@@ -187,7 +187,7 @@ Performance, Internal Implementation, Development Support etc.
    with expectations that are not satisfiable on Git for Windows.
 
  * Some calls to strcpy(3) triggers a false warning from static
-   analysers that are less intelligent than humans, and reducing the
+   analyzers that are less intelligent than humans, and reducing the
    number of these false hits helps us notice real issues.  A few
    calls to strcpy(3) in a couple of protrams that are already safe
    has been rewritten to avoid false warnings.
@@ -236,6 +236,23 @@ Performance, Internal Implementation, Development Support etc.
  * Out of maintenance gcc on OSX 10.6 fails to compile the code in
    'master'; work it around by using clang by default on the platform.
 
+ * The "name_path" API was an attempt to reduce the need to construct
+   the full path out of a series of path components while walking a
+   tree hierarchy, but over time made less efficient because the path
+   needs to be flattened, e.g. to be compared with another path that
+   is already flat, in many cases.  The API has been removed and its
+   users have been rewritten to simplify the overall code complexity.
+   This incidentally also closes some heap-corruption holes.
+
+ * Recent versions of GNU grep is pickier than before to decide if a
+   file is "binary" and refuse to give line-oriented hits when we
+   expect it to, unless explicitly told with "-a" option.  As our
+   scripted Porcelains use sane_grep wrapper for line-oriented data,
+   even when the line may contain non-ASCII payload we took from
+   end-user data, use "grep -a" to implement sane_grep wrapper when
+   using an implementation of "grep" that takes the "-a" option.
+
+
 
 Also contains various documentation updates and code clean-ups.
 
@@ -264,7 +281,7 @@ notes for details).
  * "git send-email" was confused by escaped quotes stored in the alias
    files saved by "mutt", which has been corrected.
 
- * A few unportable C construct have been spotted by clang compiler
+ * A few non-portable C construct have been spotted by clang compiler
    and have been fixed.
 
  * The documentation has been updated to hint the connection between
@@ -277,11 +294,6 @@ notes for details).
    listing and sparse checkout selection areas in 2.7.0; the change
    that is responsible for the regression has been reverted.
 
- * Another try to improve the ignore mechanism that lets you say "this
-   is excluded" and then later say "oh, no, this part (that is a
-   subset of the previous part) is not excluded".  This has still a
-   known limitation, though.
-
  * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
    (e.g. COMMIT_EDITMSG) that is meant to be left after the command is
    done.  This however did not work well if the repository is set to
@@ -337,10 +349,10 @@ notes for details).
  * "git worktree" had a broken code that attempted to auto-fix
    possible inconsistency that results from end-users moving a
    worktree to different places without telling Git (the original
-   repository needs to maintain backpointers to its worktrees, but
-   "mv" run by end-users who are not familiar with that fact will
-   obviously not adjust them), which actually made things worse
-   when triggered.
+   repository needs to maintain back-pointers to its worktrees,
+   but "mv" run by end-users who are not familiar with that fact
+   will obviously not adjust them), which actually made things
+   worse when triggered.
 
  * The low-level merge machinery has been taught to use CRLF line
    termination when inserting conflict markers to merged contents that