2016-06-20 20:06:49 +02:00
|
|
|
Git 2.10 Release Notes
|
|
|
|
======================
|
|
|
|
|
|
|
|
Backward compatibility notes
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
Updates since v2.9
|
|
|
|
------------------
|
|
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
|
|
|
|
* "git pull --rebase --verify-signature" learned to warn the user
|
|
|
|
that "--verify-signature" is a no-op when rebasing.
|
|
|
|
|
|
|
|
* An upstream project can make a recommendation to shallowly clone
|
|
|
|
some submodules in the .gitmodules file it ships.
|
|
|
|
|
|
|
|
* "git worktree add" learned that '-' can be used as a short-hand for
|
|
|
|
"@{-1}", the previous branch.
|
|
|
|
|
|
|
|
* Update the funcname definition to support css files.
|
|
|
|
|
2016-06-27 19:07:08 +02:00
|
|
|
* The completion script (in contrib/) learned to complete "git
|
|
|
|
status" options.
|
|
|
|
|
|
|
|
* Messages that are generated by auto gc during "git push" on the
|
|
|
|
receiving end are now passed back to the sending end in such a way
|
|
|
|
that they are shown with "remote: " prefix to avoid confusing the
|
|
|
|
users.
|
2016-06-20 20:06:49 +02:00
|
|
|
|
2016-07-06 22:42:58 +02:00
|
|
|
* "git add -i/-p" learned to honor diff.compactionHeuristic
|
|
|
|
experimental knob, so that the user can work on the same hunk split
|
|
|
|
as "git diff" output.
|
|
|
|
(merge 46e3d17 jk/add-i-diff-compact-heuristics later to maint).
|
|
|
|
|
|
|
|
* "upload-pack" allows a custom "git pack-objects" replacement when
|
|
|
|
responding to "fetch/clone" via the uploadpack.packObjectsHook.
|
|
|
|
(merge 20b20a2 jk/upload-pack-hook later to maint).
|
|
|
|
|
|
|
|
* Teach format-patch and mailsplit (hence "am") how a line that
|
|
|
|
happens to begin with "From " in the e-mail message is quoted with
|
|
|
|
">", so that these lines can be restored to their original shape.
|
|
|
|
(merge d9925d1 ew/mboxrd-format-am later to maint).
|
|
|
|
|
|
|
|
* "git repack" learned the "--keep-unreachable" option, which sends
|
|
|
|
loose unreachable objects to a pack instead of leaving them loose.
|
|
|
|
This helps heuristics based on the number of loose objects
|
|
|
|
(e.g. "gc --auto").
|
|
|
|
(merge e26a8c4 jk/repack-keep-unreachable later to maint).
|
|
|
|
|
|
|
|
* "log --graph --format=" learned that "%>|(N)" specifies the width
|
|
|
|
relative to the terminal's left edge, not relative to the area to
|
|
|
|
draw text that is to the right of the ancestry-graph section. It
|
|
|
|
also now accepts negative N that means the column limit is relative
|
|
|
|
to the right border.
|
|
|
|
(merge 066790d nd/graph-width-padded later to maint).
|
|
|
|
|
|
|
|
|
2016-06-20 20:06:49 +02:00
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
|
|
|
|
* "git fast-import" learned the same performance trick to avoid
|
|
|
|
creating too small a packfile as "git fetch" and "git push" have,
|
|
|
|
using *.unpackLimit configuration.
|
|
|
|
|
|
|
|
* When "git daemon" is run without --[init-]timeout specified, a
|
|
|
|
connection from a client that silently goes offline can hang around
|
|
|
|
for a long time, wasting resources. The socket-level KEEPALIVE has
|
|
|
|
been enabled to allow the OS to notice such failed connections.
|
|
|
|
(merge a43b68a ew/daemon-socket-keepalive later to maint).
|
|
|
|
|
|
|
|
* "git upload-pack" command has been updated to use the parse-options
|
|
|
|
API.
|
|
|
|
|
2016-06-27 19:07:08 +02:00
|
|
|
* The "git apply" standalone program is being libified; this is the
|
|
|
|
first step to move many state variables into a structure that can
|
|
|
|
be explicitly (re)initialized to make the machinery callable more
|
|
|
|
than once.
|
|
|
|
|
2016-07-06 22:42:58 +02:00
|
|
|
* HTTP transport gained an option to produce more detailed debugging
|
|
|
|
trace.
|
|
|
|
(merge 73e57aa ep/http-curl-trace later to maint).
|
|
|
|
|
|
|
|
* Instead of taking advantage of a struct string_list that is
|
|
|
|
allocated with all NULs happens to be STRING_LIST_INIT_NODUP kind,
|
|
|
|
initialize them explicitly as such, to document their behaviour
|
|
|
|
better.
|
|
|
|
(merge 2721ce2 jk/string-list-static-init later to maint).
|
|
|
|
|
|
|
|
* HTTPd tests learned to show the server error log to help diagnosing
|
|
|
|
a failing tests.
|
|
|
|
(merge 44f243d nd/test-lib-httpd-show-error-log-in-verbose later to maint).
|
|
|
|
|
|
|
|
* The ownership rule for the piece of memory that hold references to
|
|
|
|
be fetched in "git fetch" was screwy, which has been cleaned up.
|
|
|
|
(merge b7410f6 km/fetch-do-not-free-remote-name later to maint).
|
|
|
|
|
|
|
|
* "git bisect" makes an internal call to "git diff-tree" when
|
|
|
|
bisection finds the culprit, but this call did not initialize the
|
|
|
|
data structure to pass to the diff-tree API correctly.
|
|
|
|
(merge 43ec550 jk/bisect-show-tree later to maint).
|
|
|
|
|
|
|
|
* Further preparatory clean-up for "worktree" feature continues.
|
|
|
|
(merge 0409e0b nd/worktree-cleanup-post-head-protection later to maint).
|
|
|
|
|
|
|
|
* Formats of the various data (and how to validate them) where we use
|
|
|
|
GPG signature have been documented.
|
|
|
|
(merge cc6ee97 mg/signature-doc later to maint).
|
|
|
|
|
|
|
|
* A new run-command API function pipe_command() is introduced to
|
|
|
|
sanely feed data to the standard input while capturing data from
|
|
|
|
the standard output and the standard error of an external process,
|
|
|
|
which is cumbersome to hand-roll correctly without deadlocking.
|
|
|
|
|
|
|
|
The codepath to sign data in a prepared buffer with GPG has been
|
|
|
|
updated to use this API to read from the status-fd to check for
|
|
|
|
errors (instead of relying on GPG's exit status).
|
|
|
|
(merge efee955 jk/gpg-interface-cleanup later to maint).
|
|
|
|
|
2016-06-20 20:06:49 +02:00
|
|
|
|
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes since v2.9
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Unless otherwise noted, all the fixes since v2.8 in the maintenance
|
|
|
|
track are contained in this release (see the maintenance releases'
|
|
|
|
notes for details).
|
|
|
|
|
|
|
|
* The commands in `git log` family take %C(auto) in a custom format
|
|
|
|
string. This unconditionally turned the color on, ignoring
|
|
|
|
--no-color or with --color=auto when the output is not connected to
|
|
|
|
a tty; this was corrected to make the format truly behave as
|
|
|
|
"auto".
|
|
|
|
(merge b15a3e0 et/pretty-format-c-auto later to maint).
|
|
|
|
|
|
|
|
* "git rev-list --count" whose walk-length is limited with "-n"
|
|
|
|
option did not work well with the counting optimized to look at the
|
|
|
|
bitmap index.
|
|
|
|
(merge fb85db8 jk/rev-list-count-with-bitmap later to maint).
|
|
|
|
|
|
|
|
* "git show -W" (extend hunks to cover the entire function, delimited
|
|
|
|
by lines that match the "funcname" pattern) used to show the entire
|
|
|
|
file when a change added an entire function at the end of the file,
|
|
|
|
which has been fixed.
|
|
|
|
(merge 6f8d9bc rs/xdiff-hunk-with-func-line later to maint).
|
|
|
|
|
2016-06-27 19:07:08 +02:00
|
|
|
* The documentation set has been updated so that literal commands,
|
|
|
|
configuration variables and environment variables are consistently
|
|
|
|
typeset in fixed-width font and bold in manpages.
|
|
|
|
|
|
|
|
* "git svn propset" subcommand that was added in 2.3 days is
|
|
|
|
documented now.
|
|
|
|
|
|
|
|
* The documentation tries to consistently spell "GPG"; when
|
|
|
|
referring to the specific program name, "gpg" is used.
|
|
|
|
|
|
|
|
* "git reflog" stopped upon seeing an entry that denotes a branch
|
|
|
|
creation event (aka "unborn"), which made it appear as if the
|
|
|
|
reflog was truncated.
|
|
|
|
|
|
|
|
* The git-prompt scriptlet (in contrib/) was not friendly with those
|
|
|
|
who uses "set -u", which has been fixed.
|
|
|
|
|
|
|
|
* compat/regex code did not cleanly compile.
|
|
|
|
|
|
|
|
* A codepath that used alloca(3) to place an unbounded amount of data
|
|
|
|
on the stack has been updated to avoid doing so.
|
|
|
|
|
|
|
|
* "git update-index --add --chmod=+x file" may be usable as an escape
|
|
|
|
hatch, but not a friendly thing to force for people who do need to
|
|
|
|
use it regularly. "git add --chmod=+x file" can be used instead.
|
|
|
|
|
|
|
|
* Build improvements for gnome-keyring (in contrib/)
|
|
|
|
|
|
|
|
* "git status" used to say "working directory" when it meant "working
|
|
|
|
tree".
|
|
|
|
|
|
|
|
* Comments about misbehaving FreeBSD shells have been clarified with
|
|
|
|
the version number (9.x and before are broken, newer ones are OK).
|
|
|
|
|
|
|
|
* "git cherry-pick A" worked on an unborn branch, but "git
|
|
|
|
cherry-pick A..B" didn't.
|
2016-07-06 22:42:58 +02:00
|
|
|
|
|
|
|
* Fix an unintended regression in v2.9 that breaks "clone --depth"
|
|
|
|
that recurses down to submodules by forcing the submodules to also
|
|
|
|
be cloned shallowly, which many server instances that host upstream
|
|
|
|
of the submodules are not prepared for.
|
|
|
|
(merge 18a74a0 sb/clone-shallow-passthru later to maint).
|
|
|
|
|
|
|
|
* Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
|
|
|
|
to set the default value, without enclosing it in double quotes.
|
|
|
|
(merge 01247e0 lc/shell-default-value-noexpand later to maint).
|
|
|
|
|
|
|
|
* Some platform-specific code had non-ANSI strict declarations of C
|
|
|
|
functions that do not take any parameters, which has been
|
|
|
|
corrected.
|
|
|
|
(merge 0767172 js/mingw-parameter-less-c-functions later to maint).
|
|
|
|
|
|
|
|
* The internal code used to show local timezone offset is not
|
|
|
|
prepared to handle timestamps beyond year 2100, and gave a
|
|
|
|
bogus offset value to the caller. Use a more benign looking
|
|
|
|
+0000 instead and let "git log" going in such a case, instead
|
|
|
|
of aborting.
|
|
|
|
(merge bab7483 jk/tzoffset-fix later to maint).
|
|
|
|
|
|
|
|
* One among four invocations of readlink(1) in our test suite has
|
|
|
|
been rewritten so that the test can run on systems without the
|
|
|
|
command (others are in valgrind test framework and t9802).
|
|
|
|
(merge d2addc3 ak/t7800-wo-readlink later to maint).
|
|
|
|
|
|
|
|
* t/perf needs /usr/bin/time with GNU extension; the invocation of it
|
|
|
|
is updated to "gtime" on Darwin.
|
|
|
|
(merge e3efa94 js/perf-on-apple later to maint).
|
|
|
|
|
|
|
|
* A bug, which caused "git p4" while running under verbose mode to
|
|
|
|
report paths that are omitted due to branch prefix incorrectly, has
|
|
|
|
been fixed; the command said "Ignoring file outside of prefix" for
|
|
|
|
paths that are _inside_.
|
|
|
|
(merge 09667d0 ao/p4-has-branch-prefix-fix later to maint).
|
2016-06-27 19:07:08 +02:00
|
|
|
|
2016-06-20 20:06:49 +02:00
|
|
|
* Other minor clean-ups and documentation updates
|
2016-07-06 22:42:58 +02:00
|
|
|
(merge e51b0df pb/commit-editmsg-path later to maint).
|
|
|
|
(merge b333d0d jk/send-pack-stdio later to maint).
|
|
|
|
(merge fcf0fe9 lf/sideband-returns-void later to maint).
|
|
|
|
(merge 5819c2e sb/t5614-modernize later to maint).
|
|
|
|
(merge fe0537a cb/t7810-test-label-fix later to maint).
|
|
|
|
(merge 412b9a1 jc/t2300-setup later to maint).
|