Merge branch 'mh/fast-import-raise-default-depth'
[gitweb.git] / Documentation / RelNotes / 2.14.0.txt
index e4ca72e50e16bd4c5a04e31cc368d8e4ce4c766a..a71615a6b4275f0705aadeb62ef1763f2a81b062 100644 (file)
@@ -67,6 +67,25 @@ UI, Workflows & Features
  * Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
    configuration variable an escape hatch for those who do no want it.
 
+ * Many commands learned to pay attention to submodule.recurse
+   configuration.
+
+ * The convention for a command line is to follow "git cmdname
+   --options" with revisions followed by an optional "--"
+   disambiguator and then finally pathspecs.  When "--" is not there,
+   we make sure early ones are all interpretable as revs (and do not
+   look like paths) and later ones are the other way around.  A
+   pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
+   the top-level of the working tree, no matter what subdirectory you
+   are working from) are conservatively judged as "not a path", which
+   required disambiguation more often.  The command line parser
+   learned to say "it's a pathspec" a bit more often when the syntax
+   looks like so.
+   (merge 2cb47ab695 jk/pathspec-magic-disambiguation later to maint).
+
+ * Update "perl-compatible regular expression" support to enable JIT
+   and also allow linking with the newer PCRE v2 library.
+
 
 Performance, Internal Implementation, Development Support etc.
 
@@ -129,6 +148,26 @@ Performance, Internal Implementation, Development Support etc.
  * The internal logic used in "git blame" has been libified to make it
    easier to use by cgit.
 
+ * Our code often opens a path to an optional file, to work on its
+   contents when we can successfully open it.  We can ignore a failure
+   to open if such an optional file does not exist, but we do want to
+   report a failure in opening for other reasons (e.g. we got an I/O
+   error, or the file is there, but we lack the permission to open).
+
+   The exact errors we need to ignore are ENOENT (obviously) and
+   ENOTDIR (less obvious).  Instead of repeating comparison of errno
+   with these two constants, introduce a helper function to do so.
+
+ * We often try to open a file for reading whose existence is
+   optional, and silently ignore errors from open/fopen; report such
+   errors if they are not due to missing files.
+
+ * When an existing repository is used for t/perf testing, we first
+   create bit-for-bit copy of it, which may grab a transient state of
+   the repository and freeze it into the repository used for testing,
+   which then may cause Git operations to fail.  Single out "the index
+   being locked" case and forcibly drop the lock from the copy.
+
 
 Also contains various documentation updates and code clean-ups.
 
@@ -176,7 +215,6 @@ notes for details).
 
  * "git checkout --recurse-submodules" did not quite work with a
    submodule that itself has submodules.
-   (merge 218c883783 sb/checkout-recurse-submodules later to maint).
 
  * Plug some leaks and updates internal API used to implement the
    split index feature to make it easier to avoid such a leak in the
@@ -203,7 +241,6 @@ notes for details).
    checked out with eol=LF even on Windows.
 
  * Introduce the BUG() macro to improve die("BUG: ...").
-   (merge 3d7dd2d3b6 jk/bug-to-abort later to maint).
 
  * Clarify documentation for include.path and includeIf.<condition>.path
    configuration variables.
@@ -249,17 +286,14 @@ notes for details).
 
  * The "run-command" API implementation has been made more robust
    against dead-locking in a threaded environment.
-   (merge e3f43ce765 bw/forking-and-threading later to maint).
 
  * A recent update to t5545-push-options.sh started skipping all the
    tests in the script when a web server testing is disabled or
    unavailable, not just the ones that require a web server.  Non HTTP
    tests have been salvaged to always run in this script.
-   (merge 2e397e4ddf jc/skip-test-in-the-middle later to maint).
 
  * "git send-email" now uses Net::SMTP::SSL, which is obsolete, only
    when needed.  Recent versions of Net::SMTP can do TLS natively.
-   (merge bfbfc9a953 dk/send-email-avoid-net-smtp-ssl-when-able later to maint).
 
  * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
    slashes in it, cannot be a nickname for a remote on Windows, as
@@ -269,7 +303,6 @@ notes for details).
    even though the command should not lose ignored ones without "-x".
    "git status --ignored"  did not list ignored and untracked files
    without "-uall".  These have been corrected.
-   (merge 6b1db43109 sl/clean-d-ignored-fix later to maint).
 
  * The result from "git diff" that compares two blobs, e.g. "git diff
    $commit1:$path $commit2:$path", used to be shown with the full
@@ -291,16 +324,19 @@ notes for details).
    closed, to help Windows, on which a stale timestamp is reported by
    fstat() on a file that is opened for writing and data was written
    but not yet closed.
-   (merge 9f41c7a6b3 jh/close-index-before-stat later to maint).
 
  * "git pull --rebase --autostash" didn't auto-stash when the local history
    fast-forwards to the upstream.
-   (merge f15e7cf5cc tb/pull-ff-rebase-autostash later to maint).
+
+ * A flaky test has been corrected.
+   (merge 7c2115aa07 jk/pack-idx-corruption-safety later to maint).
+
+ * "git $cmd -h" for builtin commands calls the implementation of the
+   command (i.e. cmd_$cmd() function) without doing any repository
+   set-up, and the commands that expect RUN_SETUP is done by the Git
+   potty needs to be prepared to show the help text without barfing.
+   (merge d691551192 jk/consistent-h later to maint).
 
  * Other minor doc, test and build updates and code cleanups.
-   (merge c5a9157393 jh/memihash-opt later to maint).
-   (merge 44e2ff09ce ab/t3070-test-dedup later to maint).
-   (merge 9ee4aa95db rf/completion-config-commit later to maint).
-   (merge ef4fe5617e jk/connect-symref-info-leak-fix later to maint).
-   (merge a56eea28c4 jk/drop-free-refspecs later to maint).
-   (merge 0c79cee697 ad/pull-remote-doc later to maint).
+   (merge 8ba74bfd7c jc/diff-tree-stale-comment later to maint).
+   (merge 68602c01fd sb/submodule-rm-absorb later to maint).