Sync with Git 2.7.4
[gitweb.git] / Documentation / RelNotes / 2.8.0.txt
index b7a6d6826d1a99f0027f8ebec67028ca98145577..2f6b4948e56649b526df539e1893c8fdbbf2dd3f 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.
@@ -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.
@@ -187,14 +189,8 @@ Performance, Internal Implementation, Development Support etc.
  * 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 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.
 
@@ -281,6 +294,11 @@ 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
@@ -329,7 +347,7 @@ 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.
 
@@ -372,10 +390,6 @@ notes for details).
    misbehaved when run from a subdirectory.
    (merge 17f1365 nd/git-common-dir-fix later to maint).
 
- * Another try to add support to 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".
-
  * "git worktree add -B <branchname>" did not work.
 
  * The "v(iew)" subcommand of the interactive "git am -i" command was