26e47e261e
Signed-off-by: Junio C Hamano <gitster@pobox.com>
123 lines
4.8 KiB
Plaintext
123 lines
4.8 KiB
Plaintext
Git 2.18 Release Notes
|
|
======================
|
|
|
|
Updates since v2.17
|
|
-------------------
|
|
|
|
UI, Workflows & Features
|
|
|
|
* Rename detection logic in "diff" family that is used in "merge" has
|
|
learned to guess when all of x/a, x/b and x/c have moved to z/a,
|
|
z/b and z/c, it is likely that x/d added in the meantime would also
|
|
want to move to z/d by taking the hint that the entire directory
|
|
'x' moved to 'z'. A bug causing dirty files involved in a rename
|
|
to be overwritten during merge has also been fixed as part of this
|
|
work.
|
|
|
|
* "git filter-branch" learned to use a different exit code to allow
|
|
the callers to tell the case where there was no new commits to
|
|
rewrite from other error cases.
|
|
|
|
* When built with more recent cURL, GIT_SSL_VERSION can now specify
|
|
"tlsv1.3" as its value.
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
* A "git fetch" from a repository with insane number of refs into a
|
|
repository that is already up-to-date still wasted too many cycles
|
|
making many lstat(2) calls to see if these objects at the tips
|
|
exist as loose objects locally. These lstat(2) calls are optimized
|
|
away by enumerating all loose objects beforehand.
|
|
It is unknown if the new strategy negatively affects existing use
|
|
cases, fetching into a repository with many loose objects from a
|
|
repository with small number of refs.
|
|
|
|
* Git can be built to use either v1 or v2 of the PCRE library, and so
|
|
far, the build-time configuration USE_LIBPCRE=YesPlease instructed
|
|
the build procedure to use v1, but now it means v2. USE_LIBPCRE1
|
|
and USE_LIBPCRE2 can be used to explicitly choose which version to
|
|
use, as before.
|
|
|
|
* The build procedure learned to optionally use symbolic links
|
|
(instead of hardlinks and copies) to install "git-foo" for built-in
|
|
commands, whose binaries are all identical.
|
|
|
|
* Conversion from uchar[20] to struct object_id continues.
|
|
|
|
* The way "git worktree prune" worked internally has been simplified,
|
|
by assuming how "git worktree move" moves an existing worktree to a
|
|
different place.
|
|
|
|
* Code clean-up for the "repository" abstraction.
|
|
(merge 00a3da2a13 nd/remove-ignore-env-field later to maint).
|
|
|
|
* Code to find the length to uniquely abbreviate object names based
|
|
on packfile content, which is a relatively recent addtion, has been
|
|
optimized to use the same fan-out table.
|
|
|
|
* The mechanism to use parse-options API to automate the command line
|
|
completion continues to get extended and polished.
|
|
|
|
* Copies of old scripted Porcelain commands in contrib/examples/ have
|
|
been removed.
|
|
|
|
* Some tests that rely on the exact hardcoded values of object names
|
|
have been updated in preparation for hash function migration.
|
|
|
|
* Perf-test update.
|
|
|
|
* Test helper update.
|
|
|
|
* The effort continues to refactor the internal global data structure
|
|
to make it possible to open multiple repositories, work with and
|
|
then close them,
|
|
|
|
* Small test-helper programs have been consolidated into a single
|
|
binary.
|
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
Fixes since v2.17
|
|
-----------------
|
|
|
|
* "git shortlog cruft" aborted with a BUG message when run outside a
|
|
Git repository. The command has been taught to complain about
|
|
extra and unwanted arguments on its command line instead in such a
|
|
case.
|
|
(merge 4aa0161e83 ma/shortlog-revparse later to maint).
|
|
|
|
* "git stash push -u -- <pathspec>" gave an unnecessary and confusing
|
|
error message when there was no tracked files that match the
|
|
<pathspec>, which has been fixed.
|
|
(merge 353278687e tg/stash-untracked-with-pathspec-fix later to maint).
|
|
|
|
* "git tag --contains no-such-commit" gave a full list of options
|
|
after giving an error message.
|
|
(merge 3bb0923f06 ps/contains-id-error-message later to maint).
|
|
|
|
* "diff-highlight" filter (in contrib/) learned to undertand "git log
|
|
--graph" output better.
|
|
(merge 4551fbba14 jk/diff-highlight-graph-fix later to maint).
|
|
|
|
* when refs that do not point at committish are given, "git
|
|
filter-branch" gave a misleading error messages. This has been
|
|
corrected.
|
|
(merge f78ab355e7 yk/filter-branch-non-committish-refs later to maint).
|
|
|
|
* "git submodule status" misbehaved on a submodule that has been
|
|
removed from the working tree.
|
|
(merge 74b6bda32f rs/status-with-removed-submodule later to maint).
|
|
|
|
* When credential helper exits very quickly without reading its
|
|
input, it used to cause Git to die with SIGPIPE, which has been
|
|
fixed.
|
|
(merge a0d51e8d0e eb/cred-helper-ignore-sigpipe later to maint).
|
|
|
|
* Other minor doc, test and build updates and code cleanups.
|
|
(merge 248f66ed8e nd/trace-with-env later to maint).
|
|
(merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint).
|
|
(merge 5988eb631a ab/doc-hash-brokenness later to maint).
|
|
(merge a4d4e32a70 pk/test-avoid-pipe-hiding-exit-status later to maint).
|