| Git 2.16 Release Notes |
| ====================== |
| |
| Backward compatibility notes and other notable changes. |
| |
| * Use of an empty string as a pathspec element that is used for |
| 'everything matches' is now an error. |
| |
| |
| Updates since v2.15 |
| ------------------- |
| |
| UI, Workflows & Features |
| |
| * An empty string as a pathspec element that means "everything" |
| i.e. 'git add ""', is now illegal. We started this by first |
| deprecating and warning a pathspec that has such an element in |
| 2.11 (Nov 2016). |
| |
| * A hook script that is set unexecutable is simply ignored. Git |
| notifies when such a file is ignored, unless the message is |
| squelched via advice.ignoredHook configuration. |
| |
| * "git pull" has been taught to accept "--[no-]signoff" option and |
| pass it down to "git merge". |
| |
| * The "--push-option=<string>" option to "git push" now defaults to a |
| list of strings configured via push.pushOption variable. |
| |
| * "gitweb" checks if a directory is searchable with Perl's "-x" |
| operator, which can be enhanced by using "filetest 'access'" |
| pragma, which now we do. |
| |
| * "git stash save" has been deprecated in favour of "git stash push". |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * An earlier update made it possible to use an on-stack in-core |
| lockfile structure (as opposed to having to deliberately leak an |
| on-heap one). Many codepaths have been updated to take advantage |
| of this new facility. |
| |
| * Calling cmd_foo() as if it is a general purpose helper function is |
| a no-no. Correct two instances of such to set an example. |
| |
| * We try to see if somebody runs our test suite with a shell that |
| does not support "local" like bash/dash does. |
| |
| * An early part of piece-by-piece rewrite of "git bisect" in C. |
| |
| * GSoC to piece-by-piece rewrite "git submodule" in C. |
| |
| * Optimize the code to find shortest unique prefix of object names. |
| |
| * Pathspec-limited revision traversal was taught not to keep finding |
| unneeded differences once it knows two trees are different inside |
| given pathspec. |
| |
| * Conversion from uchar[20] to struct object_id continues. |
| |
| |
| Also contains various documentation updates and code clean-ups. |
| |
| |
| Fixes since v2.15 |
| ----------------- |
| |
| * "auto" as a value for the columnar output configuration ought to |
| judge "is the output consumed by humans?" with the same criteria as |
| "auto" for coloured output configuration, i.e. either the standard |
| output stream is going to tty, or a pager is in use. We forgot the |
| latter, which has been fixed. |
| (merge 965ff23a43 kd/auto-col-with-pager-fix later to maint). |
| |
| * The experimental "color moved lines differently in diff output" |
| feature was buggy around "ignore whitespace changes" edges, whihch |
| has been corrected. |
| (merge b66b507292 jk/diff-color-moved-fix later to maint). |
| |
| * Instead of using custom line comparison and hashing functions to |
| implement "moved lines" coloring in the diff output, use the pair |
| of these functions from lower-layer xdiff/ code. |
| (merge 01be97c2b2 sb/diff-color-moved-use-xdl-recmatch later to maint). |
| |
| * Some codepaths did not check for errors when asking what branch the |
| HEAD points at, which have been fixed. |
| (merge dbd2b55cb7 jk/misc-resolve-ref-unsafe-fixes later to maint). |
| |
| * "git commit", after making a commit, did not check for errors when |
| asking on what branch it made the commit, which has been correted. |
| (merge c26de08370 ao/check-resolve-ref-unsafe-result later to maint). |
| |
| * "git status --ignored -u" did not stop at a working tree of a |
| separate project that is embedded in an ignored directory and |
| listed files in that other project, instead of just showing the |
| directory itself as ignored. |
| (merge fadb4820c4 js/submodule-in-excluded later to maint). |
| |
| * A broken access to object databases in recent update to "git grep |
| --recurse-submodules" has been fixed. |
| (merge 9560e6245a bw/grep-recurse-submodules later to maint). |
| |
| * A recent regression in "git rebase -i" that broke execution of git |
| commands from subdirectories via "exec" insn has been fixed. |
| (merge 09d7b6c6fa jk/rebase-i-exec-gitdir-fix later to maint). |
| |
| * A (possibly flakey) test fix. |
| (merge cff48ccf2a jc/t5601-copy-workaround later to maint). |
| |
| * "git check-ref-format --branch @{-1}" bit a "BUG()" when run |
| outside a repository for obvious reasons; clarify the documentation |
| and make sure we do not even try to expand the at-mark magic in |
| such a case, but still call the validation logic for branch names. |
| (merge 89dd32aedc jc/check-ref-format-oor later to maint). |
| |
| * "git fetch --recurse-submodules" now knows that submodules can be |
| moved around in the superproject in addition to getting updated, |
| and finds the ones that need to be fetched accordingly. |
| (merge 4b4acedd61 hv/fetch-moved-submodules-on-demand later to maint). |
| |
| * Command line completion (in contrib/) update. |
| (merge 6357d9d004 tb/complete-checkout later to maint). |
| |
| * Other minor doc, test and build updates and code cleanups. |
| (merge bab76141da cn/diff-indent-no-longer-is-experimental later to maint). |