2018-01-22 06:14:09 +01:00
|
|
|
Git 2.17 Release Notes
|
|
|
|
======================
|
|
|
|
|
|
|
|
Updates since v2.16
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
|
2018-01-23 22:21:10 +01:00
|
|
|
* "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).
|
|
|
|
|
2018-02-21 21:45:35 +01:00
|
|
|
* "git format-patch" learned to give 72-cols to diffstat, which is
|
|
|
|
consistent with other line length limits the subcommand uses for
|
|
|
|
its output meant for e-mails.
|
|
|
|
|
|
|
|
* The log from "git daemon" can be redirected with a new option; one
|
|
|
|
relevant use case is to send the log to standard error (instead of
|
|
|
|
syslog) when running it from inetd.
|
|
|
|
|
|
|
|
* "git rebase" learned to take "--allow-empty-message" option.
|
2018-01-22 06:14:09 +01:00
|
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
|
2018-01-23 22:21:10 +01:00
|
|
|
* More perf tests for threaded grep
|
|
|
|
|
|
|
|
* "perf" test output can be sent to codespeed server.
|
|
|
|
(merge 19cf57a92e cc/codespeed later to maint).
|
|
|
|
|
2018-02-14 01:22:16 +01:00
|
|
|
* The build procedure for perl/ part has been greatly simplified by
|
|
|
|
weaning ourselves off of MakeMaker.
|
|
|
|
|
|
|
|
* In preparation for implementing narrow/partial clone, the machinery
|
|
|
|
for checking object connectivity used by gc and fsck has been
|
|
|
|
taught that a missing object is OK when it is referenced by a
|
|
|
|
packfile specially marked as coming from trusted repository that
|
|
|
|
promises to make them available on-demand and lazily.
|
|
|
|
|
|
|
|
* The machinery to clone & fetch, which in turn involves packing and
|
|
|
|
unpacking objects, has been told how to omit certain objects using
|
|
|
|
the filtering mechanism introduced by another topic. It now knows
|
|
|
|
to mark the resulting pack as a promisor pack to tolerate missing
|
|
|
|
objects, laying foundation for "narrow" clones.
|
|
|
|
|
|
|
|
* The first step to getting rid of mru API and using the
|
|
|
|
doubly-linked list API directly instead.
|
|
|
|
|
|
|
|
* Retire mru API as it does not give enough abstraction over
|
|
|
|
underlying list API to be worth it.
|
|
|
|
|
|
|
|
* Rewrite two more "git submodule" subcommands in C.
|
|
|
|
|
|
|
|
* The tracing machinery learned to report tweaking of environment
|
|
|
|
variables as well.
|
|
|
|
(merge 090a09272a nd/trace-with-env later to maint).
|
|
|
|
|
|
|
|
* Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
|
|
|
|
(merge cd9a4b6d93 rs/strbuf-cocci-workaround later to maint).
|
|
|
|
|
|
|
|
* Prevent "clang-format" from breaking line after function return type.
|
|
|
|
(merge a3715d43e8 po/clang-format-functype-weight later to maint).
|
|
|
|
|
|
|
|
* The sequencer infrastructure is shared across "git cherry-pick",
|
|
|
|
"git rebase -i", etc., and has always spawned "git commit" when it
|
|
|
|
needs to create a commit. It has been taught to do so internally,
|
|
|
|
when able, by reusing the codepath "git commit" itself uses, which
|
|
|
|
gives performance boost for a few tens of percents in some sample
|
|
|
|
scenarios.
|
|
|
|
|
2018-02-15 23:56:49 +01:00
|
|
|
* Push the submodule version of collision-detecting SHA-1 hash
|
|
|
|
implementation a bit harder on builders.
|
|
|
|
|
|
|
|
* Avoid mmapping small files while using packed refs (especially ones
|
|
|
|
with zero size, which would cause later munmap() to fail).
|
|
|
|
(merge ba41a8b600 kg/packed-ref-cache-fix later to maint).
|
|
|
|
|
|
|
|
* Conversion from uchar[20] to struct object_id continues.
|
|
|
|
|
|
|
|
* More tests for wildmatch functions.
|
2018-01-22 06:14:09 +01:00
|
|
|
|
2018-02-27 19:35:18 +01:00
|
|
|
* 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.
|
|
|
|
|
2018-01-22 06:14:09 +01:00
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes since v2.16
|
|
|
|
-----------------
|
|
|
|
|
2018-01-23 22:21:10 +01:00
|
|
|
* An old regression in "git describe --all $annotated_tag^0" has been
|
|
|
|
fixed.
|
|
|
|
|
|
|
|
* "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.
|
|
|
|
|
|
|
|
* API clean-up around revision traversal.
|
|
|
|
|
|
|
|
* "git merge -Xours/-Xtheirs" learned to use our/their version when
|
|
|
|
resolving a conflicting updates to a symbolic link.
|
|
|
|
|
|
|
|
* "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.
|
|
|
|
|
|
|
|
* "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.
|
|
|
|
|
|
|
|
* Instead of maintaining home-grown email address parsing code, ship
|
|
|
|
a copy of reasonably recent Mail::Address to be used as a fallback
|
|
|
|
in 'git send-email' when the platform lacks it.
|
|
|
|
(merge d60be8acab mm/send-email-fallback-to-local-mail-address later to maint).
|
|
|
|
|
|
|
|
* "git add -p" was taught to ignore local changes to submodules as
|
|
|
|
they do not interfere with the partial addition of regular changes
|
|
|
|
anyway.
|
|
|
|
|
2018-02-14 01:22:16 +01:00
|
|
|
* Avoid showing a warning message in the middle of a line of "git
|
|
|
|
diff" output.
|
|
|
|
(merge 4e056c989f nd/diff-flush-before-warning later to maint).
|
|
|
|
|
|
|
|
* The http tracing code, often used to debug connection issues,
|
|
|
|
learned to redact potentially sensitive information from its output
|
|
|
|
so that it can be more safely sharable.
|
|
|
|
(merge 8ba18e6fa4 jt/http-redact-cookies later to maint).
|
|
|
|
|
|
|
|
* Crash fix for a corner case where an error codepath tried to unlock
|
|
|
|
what it did not acquire lock on.
|
|
|
|
(merge 81fcb698e0 mr/packed-ref-store-fix later to maint).
|
|
|
|
|
|
|
|
* The split-index mode had a few corner case bugs fixed.
|
|
|
|
(merge ae59a4e44f tg/split-index-fixes later to maint).
|
|
|
|
|
|
|
|
* Assorted fixes to "git daemon".
|
|
|
|
(merge ed15e58efe jk/daemon-fixes later to maint).
|
|
|
|
|
|
|
|
* Completion of "git merge -s<strategy>" (in contrib/) did not work
|
|
|
|
well in non-C locale.
|
|
|
|
(merge 7cc763aaa3 nd/list-merge-strategy later to maint).
|
|
|
|
|
|
|
|
* Workaround for segfault with more recent versions of SVN.
|
|
|
|
(merge 7f6f75e97a ew/svn-branch-segfault-fix later to maint).
|
|
|
|
|
2018-02-15 23:56:49 +01:00
|
|
|
* Plug recently introduced leaks in fsck.
|
|
|
|
(merge ba3a08ca0e jt/fsck-code-cleanup later to maint).
|
|
|
|
|
|
|
|
* "git pull --rebase" did not pass verbosity setting down when
|
|
|
|
recursing into a submodule.
|
|
|
|
(merge a56771a668 sb/pull-rebase-submodule later to maint).
|
|
|
|
|
|
|
|
* The way "git reset --hard" reports the commit the updated HEAD
|
|
|
|
points at is made consistent with the way how the commit title is
|
|
|
|
generated by the other parts of the system. This matters when the
|
|
|
|
title is spread across physically multiple lines.
|
|
|
|
(merge 1cf823fb68 tg/reset-hard-show-head-with-pretty later to maint).
|
|
|
|
|
2018-02-21 21:45:35 +01:00
|
|
|
* Test fixes.
|
|
|
|
(merge 63b1a175ee sg/test-i18ngrep later to maint).
|
|
|
|
|
2018-02-27 19:35:18 +01:00
|
|
|
* 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).
|
|
|
|
|
2018-01-22 06:14:09 +01:00
|
|
|
* Other minor doc, test and build updates and code cleanups.
|
2018-01-23 22:21:10 +01:00
|
|
|
(merge e2a5a028c7 bw/oidmap-autoinit later to maint).
|
|
|
|
(merge f0a6068a9f ys/bisect-object-id-missing-conversion-fix later to maint).
|
2018-02-14 01:22:16 +01:00
|
|
|
(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).
|
|
|
|
(merge 8462ff43e4 tb/crlf-conv-flags later to maint).
|
|
|
|
(merge 7d68bb0766 rb/hashmap-h-compilation-fix later to maint).
|
|
|
|
(merge 3449847168 cc/sha1-file-name later to maint).
|
|
|
|
(merge ad622a256f ds/use-get-be64 later to maint).
|
|
|
|
(merge f919ffebed sg/cocci-move-array later to maint).
|
|
|
|
(merge 4e801463c7 jc/mailinfo-cleanup-fix later to maint).
|
|
|
|
(merge ef5b3a6c5e nd/shared-index-fix later to maint).
|
|
|
|
(merge 9f5258cbb8 tz/doc-show-defaults-to-head later to maint).
|
2018-02-15 23:56:49 +01:00
|
|
|
(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).
|
2018-02-27 19:35:18 +01:00
|
|
|
(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).
|