diff options
Diffstat (limited to 'Documentation/RelNotes')
-rw-r--r-- | Documentation/RelNotes/2.17.0.txt | 138 |
1 files changed, 123 insertions, 15 deletions
diff --git a/Documentation/RelNotes/2.17.0.txt b/Documentation/RelNotes/2.17.0.txt index db87393f4a..856796f979 100644 --- a/Documentation/RelNotes/2.17.0.txt +++ b/Documentation/RelNotes/2.17.0.txt @@ -8,7 +8,6 @@ UI, Workflows & Features * "diff" family of commands learned "--find-object=<object-id>" option to limit the findings to changes that involve the named object. - (merge 4d8c51aa19 sb/diff-blobfind-pickaxe later to maint). * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for @@ -20,10 +19,45 @@ UI, Workflows & Features * "git rebase" learned to take "--allow-empty-message" option. + * "git am" has learned the "--quit" option, in addition to the + existing "--abort" option; having the pair mirrors a few other + commands like "rebase" and "cherry-pick". + + * "git worktree add" learned to run the post-checkout hook, just like + "git clone" runs it upon the initial checkout. + + * "git tag" learned an explicit "--edit" option that allows the + message given via "-m" and "-F" to be further edited. + + * "git fetch --prune-tags" may be used as a handy short-hand for + getting rid of stale tags that are locally held. + + * The new "--show-current-patch" option gives an end-user facing way + to get the diff being applied when "git rebase" (and "git am") + stops with a conflict. + + * "git add -p" used to offer "/" (look for a matching hunk) as a + choice, even there was only one hunk, which has been corrected. + Also the single-key help is now given only for keys that are + enabled (e.g. help for '/' won't be shown when there is only one + hunk). + + * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when + the side branch being merged is a descendant of the current commit, + create a merge commit instead of fast-forwarding) when merging a + tag object. This was appropriate default for integrators who pull + signed tags from their downstream contributors, but caused an + unnecessary merges when used by downstream contributors who + habitually "catch up" their topic branches with tagged releases + from the upstream. Update "git merge" to default to --no-ff only + when merging a tag object that does *not* sit at its usual place in + refs/tags/ hierarchy, and allow fast-forwarding otherwise, to + mitigate the problem. + + Performance, Internal Implementation, Development Support etc. * More perf tests for threaded grep - (merge 7b31b55db1 ab/perf-grep-threads later to maint). * "perf" test output can be sent to codespeed server. (merge 19cf57a92e cc/codespeed later to maint). @@ -79,6 +113,16 @@ Performance, Internal Implementation, Development Support etc. * More tests for wildmatch functions. + * The code to binary search starting from a fan-out table (which is + how the packfile is indexed with object names) has been refactored + into a reusable helper. + + * We now avoid using identifiers that clash with C++ keywords. Even + though it is not a goal to compile Git with C++ compilers, changes + like this help use of code analysis tools that targets C++ on our + codebase. + + Also contains various documentation updates and code clean-ups. @@ -87,44 +131,35 @@ Fixes since v2.16 * An old regression in "git describe --all $annotated_tag^0" has been fixed. - (merge 1bba00130a dk/describe-all-output-fix later to maint). * "git status" after moving a path in the working tree (hence making it appear "removed") and then adding with the -N option (hence making that appear "added") detected it as a rename, but did not report the old and new pathnames correctly. - (merge 176ea74793 nd/ita-wt-renames-in-status later to maint). * "git svn dcommit" did not take into account the fact that a svn+ssh:// URL with a username@ (typically used for pushing) refers to the same SVN repository without the username@ and failed when svn.pushmergeinfo option is set. - (merge 8aaed892fd jm/svn-pushmergeinfo-fix later to maint). * API clean-up around revision traversal. - (merge 6fcec2f9ae rs/lose-leak-pending later to maint). * "git merge -Xours/-Xtheirs" learned to use our/their version when resolving a conflicting updates to a symbolic link. - (merge fd48b46474 jc/merge-symlink-ours-theirs later to maint). * "git clone $there $here" is allowed even when here directory exists as long as it is an empty directory, but the command incorrectly removed it upon a failure of the operation. - (merge d45420c1c8 jk/abort-clone-with-existing-dest later to maint). * "git commit --fixup" did not allow "-m<message>" option to be used at the same time; allow it to annotate resulting commit with more text. - (merge 30884c9afc ab/commit-m-with-fixup later to maint). * When resetting the working tree files recursively, the working tree of submodules are now also reset to match. - (merge 7dcc1f4df8 sb/submodule-update-reset-fix later to maint). * "git stash -- <pathspec>" incorrectly blew away untracked files in the directory that matched the pathspec, which has been corrected. - (merge bba067d2fa tg/stash-with-pathspec-fix later to maint). * Instead of maintaining home-grown email address parsing code, ship a copy of reasonably recent Mail::Address to be used as a fallback @@ -134,7 +169,6 @@ Fixes since v2.16 * "git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. - (merge 12434efc1d nd/add-i-ignore-submodules later to maint). * Avoid showing a warning message in the middle of a line of "git diff" output. @@ -178,11 +212,67 @@ Fixes since v2.16 * Test fixes. (merge 63b1a175ee sg/test-i18ngrep later to maint). + * Some bugs around "untracked cache" feature have been fixed. This + will notice corrupt data in the untracked cache left by old and + buggy code and issue a warning---the index can be fixed by clearing + the untracked cache from it. + (merge 0cacebf099 nd/fix-untracked-cache-invalidation later to maint). + (merge 7bf0be7501 ab/untracked-cache-invalidation-docs later to maint). + + * "git blame HEAD COPYING" in a bare repository failed to run, while + "git blame HEAD -- COPYING" run just fine. This has been corrected. + + * "git add" files in the same directory, but spelling the directory + path in different cases on case insensitive filesystem, corrupted + the name hash data structure and led to unexpected results. This + has been corrected. + (merge c95525e90d bp/name-hash-dirname-fix later to maint). + + * "git rebase -p" mangled log messages of a merge commit, which is + now fixed. + (merge ed5144d7eb js/fix-merge-arg-quoting-in-rebase-p later to maint). + + * Some low level protocol codepath could crash when they get an + unexpected flush packet, which is now fixed. + (merge bb1356dc64 js/packet-read-line-check-null later to maint). + + * "git check-ignore" with multiple paths got confused when one is a + file and the other is a directory, which has been fixed. + (merge d60771e930 rs/check-ignore-multi later to maint). + + * "git describe $garbage" stopped giving any errors when the garbage + happens to be a string with 40 hexadecimal letters. + (merge a8e7a2bf0f sb/describe-blob later to maint). + + * Code to unquote single-quoted string (used in the parser for + configuration files, etc.) did not diagnose bogus input correctly + and produced bogus results instead. + (merge ddbbf8eb25 jk/sq-dequote-on-bogus-input later to maint). + + * Many places in "git apply" knew that "/dev/null" that signals + "there is no such file on this side of the diff" can be followed by + whitespace and garbage when parsing a patch, except for one, which + made an otherwise valid patch (e.g. ones from subversion) rejected. + (merge e454ad4bec tk/apply-dev-null-verify-name-fix later to maint). + + * We no longer create any *.spec file, so "make clean" should not + remove it. + (merge 4321bdcabb tz/do-not-clean-spec-file later to maint). + + * "git push" over http transport did not unquote the push-options + correctly. + (merge 90dce21eb0 jk/push-options-via-transport-fix later to maint). + + * "git send-email" learned to complain when the batch-size option is + not defined when the relogin-delay option is, since these two are + mutually required. + (merge 9caa70697b xz/send-email-batch-size later to maint). + + * Y2k20 fix ;-) for our perl scripts. + (merge a40e06ee33 bw/perl-timegm-timelocal-fix later to maint). + * Other minor doc, test and build updates and code cleanups. (merge e2a5a028c7 bw/oidmap-autoinit later to maint). - (merge f0a6068a9f ys/bisect-object-id-missing-conversion-fix later to maint). - (merge 30221a3389 as/read-tree-prefix-doc-fix later to maint). - (merge 9bd2ce5432 ab/doc-cat-file-e-still-shows-errors later to maint). (merge ec3b4b06f8 cl/t9001-cleanup later to maint). (merge e1b3f3dd38 ks/submodule-doc-updates later to maint). (merge fbac558a9b rs/describe-unique-abbrev later to maint). @@ -197,3 +287,21 @@ Fixes since v2.16 (merge b780e4407d jc/worktree-add-short-help later to maint). (merge ae239fc8e5 rs/cocci-strbuf-addf-to-addstr later to maint). (merge 2e22a85e5c nd/ignore-glob-doc-update later to maint). + (merge 3738031581 jk/gettext-poison later to maint). + (merge 54360a1956 rj/sparse-updates later to maint). + (merge 12e31a6b12 sg/doc-test-must-fail-args later to maint). + (merge 760f1ad101 bc/doc-interpret-trailers-grammofix later to maint). + (merge 4ccf461f56 bp/fsmonitor later to maint). + (merge a6119f82b1 jk/test-hashmap-updates later to maint). + (merge 5aea9fe6cc rd/typofix later to maint). + (merge e4e5da2796 sb/status-doc-fix later to maint). + (merge 7976e901c8 gs/test-unset-xdg-cache-home later to maint). + (merge d023df1ee6 tg/worktree-create-tracking later to maint). + (merge 4cbe92fd41 sm/mv-dry-run-update later to maint). + (merge 75e5e9c3f7 sb/color-h-cleanup later to maint). + (merge 2708ef4af6 sg/t6300-modernize later to maint). + (merge d88e92d4e0 bw/doc-submodule-recurse-config-with-clone later to maint). + (merge f74bbc8dd2 jk/cached-commit-buffer later to maint). + (merge 1316416903 ms/non-ascii-ticks later to maint). + (merge 878056005e rs/strbuf-read-file-or-whine later to maint). + (merge 79f0ba1547 jk/strbuf-read-file-close-error later to maint). |