0339965c70
Signed-off-by: Junio C Hamano <gitster@pobox.com>
275 lines
12 KiB
Plaintext
275 lines
12 KiB
Plaintext
Git 2.14 Release Notes
|
|
======================
|
|
|
|
Backward compatibility notes.
|
|
|
|
* Use of an empty string as a pathspec element that is used for
|
|
'everything matches' is still warned and Git asks users to use a
|
|
more explicit '.' for that instead. The hope is that existing
|
|
users will not mind this change, and eventually the warning can be
|
|
turned into a hard error, upgrading the deprecation into removal of
|
|
this (mis)feature. That is not scheduled to happen in the upcoming
|
|
release (yet).
|
|
|
|
* Git now avoids blindly falling back to ".git" when the setup
|
|
sequence said we are _not_ in Git repository. A corner case that
|
|
happens to work right now may be broken by a call to die("BUG").
|
|
We've tried hard to locate such cases and fixed them, but there
|
|
might still be cases that need to be addressed--bug reports are
|
|
greatly appreciated.
|
|
|
|
|
|
Updates since v2.13
|
|
-------------------
|
|
|
|
UI, Workflows & Features
|
|
|
|
* The colors in which "git status --short --branch" showed the names
|
|
of the current branch and its remote-tracking branch are now
|
|
configurable.
|
|
|
|
* "git clone" learned the "--no-tags" option not to fetch all tags
|
|
initially, and also set up the tagopt not to follow any tags in
|
|
subsequent fetches.
|
|
|
|
* "git archive --format=zip" learned to use zip64 extension when
|
|
necessary to go beyond the 4GB limit.
|
|
(merge 867e40ff3a rs/large-zip later to maint).
|
|
|
|
* "git reset" learned "--recurse-submodules" option.
|
|
|
|
* "git diff --submodule=diff" now recurses into nested submodules.
|
|
(merge 5a5221427c jk/diff-submodule-diff-inline later to maint).
|
|
|
|
* "git repack" learned to accept the --threads=<n> option and pass it
|
|
to pack-objects.
|
|
|
|
* "git send-email" learned to run sendemail-validate hook to inspect
|
|
and reject a message before sending it out.
|
|
(merge 6489660b4b jt/send-email-validate-hook later to maint).
|
|
|
|
* There is no good reason why "git fetch $there $sha1" should fail
|
|
when the $sha1 names an object at the tip of an advertised ref,
|
|
even when the other side hasn't enabled allowTipSHA1InWant.
|
|
|
|
* The recently introduced "[includeIf "gitdir:$dir"] path=..."
|
|
mechansim has further been taught to take symlinks into account.
|
|
The directory "$dir" specified in "gitdir:$dir" may be a symlink to
|
|
a real location, not something that $(getcwd) may return. In such
|
|
a case, a realpath of "$dir" is compared with the real path of the
|
|
current repository to determine if the contents from the named path
|
|
should be included.
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
* The default packed-git limit value has been raised on larger
|
|
platforms to save "git fetch" from a (recoverable) failure while
|
|
"gc" is running in parallel.
|
|
|
|
* Code to update the cache-tree has been tightened so that we won't
|
|
accidentally write out any 0{40} entry in the tree object.
|
|
(merge a96d3cc3f6 jk/no-null-sha1-in-cache-tree later to maint).
|
|
|
|
* Attempt to allow us notice "fishy" situation where we fail to
|
|
remove the temporary directory used during the test.
|
|
|
|
* Travis CI gained a task to format the documentation with both
|
|
AsciiDoc and AsciiDoctor.
|
|
(merge 505ad91304 ls/travis-doc-asciidoctor later to maint).
|
|
|
|
* Some platforms have ulong that is smaller than time_t, and our
|
|
historical use of ulong for timestamp would mean they cannot
|
|
represent some timestamp that the platform allows. Invent a
|
|
separate and dedicated timestamp_t (so that we can distingiuish
|
|
timestamps and a vanilla ulongs, which along is already a good
|
|
move), and then declare uintmax_t is the type to be used as the
|
|
timestamp_t.
|
|
|
|
* We can trigger Windows auto-build tester (credits: Dscho &
|
|
Microsoft) from our existing Travis CI tester now.
|
|
|
|
* Conversion from uchar[20] to struct object_id continues.
|
|
|
|
* Simplify parse_pathspec() codepath and stop it from looking at the
|
|
default in-core index.
|
|
(merge 08de9151a8 bw/pathspec-sans-the-index later to maint).
|
|
|
|
* Add perf-test for wildmatch.
|
|
(merge 62ca75a6b9 ab/perf-wildmatch later to maint).
|
|
|
|
* Code from "conversion using external process" codepath has been
|
|
extracted to a separate sub-process.[ch] module.
|
|
(merge 4f2a2e9f0e bp/sub-process-convert-filter later to maint).
|
|
|
|
* When "git checkout", "git merge", etc. manipulates the in-core
|
|
index, various pieces of information in the index extensions are
|
|
discarded from the original state, as it is usually not the case
|
|
that they are kept up-to-date and in-sync with the operation on the
|
|
main index. The untracked cache extension is copied across these
|
|
operations now, which would speed up "git status" (as long as the
|
|
cache is properly invalidated).
|
|
|
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
Fixes since v2.13
|
|
-----------------
|
|
|
|
Unless otherwise noted, all the fixes since v2.13 in the maintenance
|
|
track are contained in this release (see the maintenance releases'
|
|
notes for details).
|
|
|
|
* "git gc" did not interact well with "git worktree"-managed
|
|
per-worktree refs.
|
|
|
|
* "git cherry-pick" and other uses of the sequencer machinery
|
|
mishandled a trailer block whose last line is an incomplete line.
|
|
This has been fixed so that an additional sign-off etc. are added
|
|
after completing the existing incomplete line.
|
|
(merge 44dc738a39 jt/use-trailer-api-in-commands later to maint).
|
|
|
|
* The codepath in "git am" that is used when running "git rebase"
|
|
leaked memory held for the log message of the commits being rebased.
|
|
(merge 721f5f1e35 jk/am-leakfix later to maint).
|
|
|
|
* "git clone --config var=val" is a way to populate the
|
|
per-repository configuration file of the new repository, but it did
|
|
not work well when val is an empty string. This has been fixed.
|
|
(merge db4eca1fea jn/clone-add-empty-config-from-command-line later to maint).
|
|
|
|
* Setting "log.decorate=false" in the configuration file did not take
|
|
effect in v2.13, which has been corrected.
|
|
(merge c74271aae7 ah/log-decorate-default-to-auto later to maint).
|
|
|
|
* A few codepaths in "checkout" and "am" working on an unborn branch
|
|
tried to access an uninitialized piece of memory.
|
|
(merge 57e0ef0e0e rs/checkout-am-fix-unborn later to maint).
|
|
|
|
* The Web interface to gmane news archive is long gone, even though
|
|
the articles are still accessible via NTTP. Replace the links with
|
|
ones to public-inbox.org. Because their message identification is
|
|
based on the actual message-id, it is likely that it will be easier
|
|
to migrate away from it if/when necessary.
|
|
(merge 5840eb9d14 ab/doc-replace-gmane-links later to maint).
|
|
|
|
* The receive-pack program now makes sure that the push certificate
|
|
records the same set of push options used for pushing.
|
|
(merge cbaf82cc6b jt/push-options-doc later to maint).
|
|
|
|
* Tests have been updated to pass under GETTEXT_POISON (a mechanism
|
|
to ensure that output strings that should not be translated are
|
|
not translated by mistake), and TravisCI is told to run them.
|
|
(merge b8e188f6f5 ab/fix-poison-tests later to maint).
|
|
|
|
* "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
|
|
future.
|
|
(merge de950c5773 nd/split-index-unshare later to maint).
|
|
|
|
* "pack-objects" can stream a slice of an existing packfile out when
|
|
the pack bitmap can tell that the reachable objects are all needed
|
|
in the output, without inspecting individual objects. This
|
|
strategy however would not work well when "--local" and other
|
|
options are in use, and need to be disabled.
|
|
(merge da5a1f8100 jk/disable-pack-reuse-when-broken later to maint).
|
|
|
|
* Fix memory leaks pointed out by Coverity (and people).
|
|
(merge 443a12f37b js/plug-leaks later to maint).
|
|
|
|
* "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
|
|
--empty if you want to clear the index". With "-m", such a request
|
|
will still fail anyway, as you'd need to name at least one tree-ish
|
|
to be merged.
|
|
(merge b9b10d3681 jc/read-tree-empty-with-m later to maint).
|
|
|
|
* Make sure our tests would pass when the sources are checked out
|
|
with "platform native" line ending convention by default on
|
|
Windows. Some "text" files out tests use and the test scripts
|
|
themselves that are meant to be run with /bin/sh, ought to be
|
|
checked out with eol=LF even on Windows.
|
|
(merge 2779f66505 js/eol-on-ourselves later to maint).
|
|
|
|
* 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.
|
|
(merge ce933ebd5a jk/doc-config-include later to maint).
|
|
|
|
* Git sometimes gives an advice in a rhetorical question that does
|
|
not require an answer, which can confuse new users and non native
|
|
speakers. Attempt to rephrase them.
|
|
(merge 6963893943 ja/do-not-ask-needless-questions later to maint).
|
|
|
|
* A few http:// links that are redirected to https:// in the
|
|
documentation have been updated to https:// links.
|
|
(merge 5e68729fd9 jk/update-links-in-docs later to maint).
|
|
|
|
* "git for-each-ref --format=..." with %(HEAD) in the format used to
|
|
resolve the HEAD symref as many times as it had processed refs,
|
|
which was wasteful, and "git branch" shared the same problem.
|
|
(merge 613a0e52ea kn/ref-filter-branch-list later to maint).
|
|
|
|
* Regression fix to topic recently merged to 'master'.
|
|
(merge d096d7f1ef pw/rebase-i-regression-fix later to maint).
|
|
|
|
* The shell completion script (in contrib/) learned "git stash" has
|
|
a new "push" subcommand.
|
|
(merge 3851e4483f tg/stash-push-fixup later to maint).
|
|
|
|
* "git interpret-trailers", when used as GIT_EDITOR for "git commit
|
|
-v", looked for and appended to a trailer block at the very end,
|
|
i.e. at the end of the "diff" output. The command has been
|
|
corrected to pay attention to the cut-mark line "commit -v" adds to
|
|
the buffer---the real trailer block should appear just before it.
|
|
(merge d76650b8d1 bm/interpret-trailers-cut-line-is-eom later to maint).
|
|
|
|
* A test allowed both "git push" and "git receive-pack" on the other
|
|
end write their traces into the same file. This is OK on platforms
|
|
that allows atomically appending to a file opened with O_APPEND,
|
|
but on other platforms led to a mangled output, causing
|
|
intermittent test failures. This has been fixed by disabling
|
|
traces from "receive-pack" in the test.
|
|
(merge 71406ed4d6 jk/alternate-ref-optim later to maint).
|
|
|
|
* Tag objects, which are not reachable from any ref, that point at
|
|
missing objects were mishandled by "git gc" and friends (they
|
|
should silently be ignored instead)
|
|
(merge a3ba6bf10a jk/ignore-broken-tags-when-ignoring-missing-links later to maint).
|
|
|
|
* "git describe --contains" penalized light-weight tags so much that
|
|
they were almost never considered. Instead, give them about the
|
|
same chance to be considered as an annotated tag that is the same
|
|
age as the underlying commit would.
|
|
(merge ef1e74065c jc/name-rev-lw-tag later to maint).
|
|
|
|
* 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 0ead000c3a dk/send-email-avoid-net-smtp-ssl-when-able later to maint).
|
|
|
|
* Other minor doc, test and build updates and code cleanups.
|
|
(merge 515360f9e9 jn/credential-doc-on-clear later to maint).
|
|
(merge 0e6d899fee ab/aix-needs-compat-regex later to maint).
|
|
(merge e294e8959f jc/apply-fix-mismerge later to maint).
|
|
(merge 7f1b225153 bw/submodule-with-bs-path later to maint).
|
|
(merge c8f7c8b704 tb/dedup-crlf-tests later to maint).
|
|
(merge 449456ad47 sg/core-filemode-doc-typofix later to maint).
|
|
(merge ba4dce784e km/log-showsignature-doc later to maint).
|
|
(merge c5a9157393 jh/memihash-opt later to maint).
|