Merge branch 'bw/rebase-merge-entire-branch'
[gitweb.git] / Documentation / RelNotes / 2.8.0.txt
index 14b6c70ed6a64cae8d75fd0de863f66597c67da8..25079710fa28155cf8d2747d9cbca14fcd84f360 100644 (file)
@@ -16,7 +16,9 @@ UI, Workflows & Features
    the source repository has packed references for a long time, and
    nobody noticed nor complained about it.
 
- * "branch --delete" has "branch -d" but "push --delete" does not.
+ * "push" learned that its "--delete" option can be shortened to
+   "-d", just like "branch --delete" and "branch -d" are the same
+   thing.
 
  * "git blame" learned to produce the progress eye-candy when it takes
    too much time before emitting the first line of the result.
@@ -32,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
@@ -53,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).
@@ -131,8 +133,8 @@ UI, Workflows & Features
 
  * Across the transition at around Git version 2.0, the user used to
    get a pretty loud warning when running "git push" without setting
-   push.default configuration variable.  We no longer warn, given that
-   the transition is over long time ago.
+   push.default configuration variable.  We no longer warn because the
+   transition was completed a long time ago.
 
  * README has been renamed to README.md and its contents got tweaked
    slightly to make it easier on the eyes.
@@ -143,8 +145,8 @@ Performance, Internal Implementation, Development Support etc.
  * Add a framework to spawn a group of processes in parallel, and use
    it to run "git fetch --recurse-submodules" in parallel.
 
- * A slight update to the Makefile to mark "phoney" targets
-   as such correctly.
+ * A slight update to the Makefile to mark ".PHONY" targets as such
+   correctly.
 
  * In-core storage of the reverse index for .pack files (which lets
    you go from a pack offset to an object name) has been streamlined.
@@ -185,16 +187,10 @@ 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 test-path-utils that are already safe has
-   been rewritten to avoid false wanings.
-
- * Some calls to strcpy(3) triggers a false warning from static
-   analysers 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 "git rerere" that are already safe has been
-   rewritten to avoid false wanings.
+   calls to strcpy(3) in a couple of protrams that are already safe
+   has been rewritten to avoid false warnings.
 
  * 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
@@ -240,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.
 
@@ -268,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
@@ -281,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
@@ -334,17 +342,17 @@ notes for details).
  * dirname() emulation has been added, as Msys2 lacks it.
 
  * The underlying machinery used by "ls-files -o" and other commands
-   have been taught not to create empty submodule ref cache for a
+   has been taught not to create empty submodule ref cache for a
    directory that is not a submodule.  This removes a ton of wasted
    CPU cycles.
 
  * "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