diff options
Diffstat (limited to 'Documentation/RelNotes/2.14.0.txt')
-rw-r--r-- | Documentation/RelNotes/2.14.0.txt | 92 |
1 files changed, 78 insertions, 14 deletions
diff --git a/Documentation/RelNotes/2.14.0.txt b/Documentation/RelNotes/2.14.0.txt index e4ca72e..9c252cd 100644 --- a/Documentation/RelNotes/2.14.0.txt +++ b/Documentation/RelNotes/2.14.0.txt @@ -67,6 +67,29 @@ 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. + + * "filter-branch" learned a pseudo filter "--setup" that can be used + to define a common function/variable that can be used by other + filters. + Performance, Internal Implementation, Development Support etc. @@ -129,6 +152,33 @@ 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. + + * Three instances of the same helper function have been consolidated + to one. + (merge e0556a928f pc/dir-count-slashes later to maint). + + * "fast-import" uses a default pack chain depth that is consistent + with other parts of the system. + Also contains various documentation updates and code clean-ups. @@ -176,7 +226,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 +252,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 +297,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 +314,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 +335,36 @@ 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). + + * Help contributors that visit us at GitHub. + (merge 0b1bb0c032 ls/github later to maint). + + * "git stash push <pathspec>" did not work from a subdirectory at all. + Bugfix for a topic in v2.13 + (merge 22fc703ec9 ps/stash-push-pathspec-fix later to maint). + + * As there is no portable way to pass timezone information to + strftime, some output format from "git log" and friends are + impossible to produce. Teach our own strbuf_addftime to replace %z + and %Z with caller-supplied values to help working around this. + (merge 6eced3ec5e rs/strbuf-addftime-zZ 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). + (merge 68241cb9dd sb/t4005-modernize later to maint). + (merge ae52d57f0b km/test-mailinfo-b-failure later to maint). + (merge 8b1d9136e1 sg/revision-parser-skip-prefix later to maint). + (merge bb8efa1772 sd/t3200-branch-m-test later to maint). |