You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
261 lines
11 KiB
261 lines
11 KiB
Git 2.35 Release Notes |
|
====================== |
|
|
|
Updates since Git 2.34 |
|
---------------------- |
|
|
|
Backward compatibility warts |
|
|
|
* "_" is now treated as any other URL-valid characters in an URL when |
|
matching the per-URL configuration variable names. |
|
|
|
|
|
UI, Workflows & Features |
|
|
|
* "git status --porcelain=v2" now show the number of stash entries |
|
with --show-stash like the normal output does. |
|
|
|
* "git stash" learned the "--staged" option to stash away what has |
|
been added to the index (and nothing else). |
|
|
|
* "git var GIT_DEFAULT_BRANCH" is a way to see what name is used for |
|
the newly created branch if "git init" is run. |
|
|
|
* Various operating modes of "git reset" have been made to work |
|
better with the sparse index. |
|
|
|
* "git submodule deinit" for a submodule whose .git metadata |
|
directory is embedded in its working tree refused to work, until |
|
the submodule gets converted to use the "absorbed" form where the |
|
metadata directory is stored in superproject, and a gitfile at the |
|
top-level of the working tree of the submodule points at it. The |
|
command is taught to convert such submodules to the absorbed form |
|
as needed. |
|
|
|
* The completion script (in contrib/) learns that the "--date" |
|
option of commands from the "git log" family takes "human" and |
|
"auto" as valid values. |
|
|
|
* "Zealous diff3" style of merge conflict presentation has been added. |
|
|
|
* The "git log --format=%(describe)" placeholder has been extended to |
|
allow passing selected command-line options to the underlying "git |
|
describe" command. |
|
|
|
* "default" and "reset" have been added to our color palette. |
|
|
|
* The cryptographic signing using ssh keys can specify literal keys |
|
for keytypes whose name do not begin with the "ssh-" prefix by |
|
using the "key::" prefix mechanism (e.g. "key::ecdsa-sha2-nistp256"). |
|
|
|
* "git fetch" without the "--update-head-ok" option ought to protect |
|
a checked out branch from getting updated, to prevent the working |
|
tree that checks it out to go out of sync. The code was written |
|
before the use of "git worktree" got widespread, and only checked |
|
the branch that was checked out in the current worktree, which has |
|
been updated. |
|
|
|
* "git name-rev" has been tweaked to give output that is shorter and |
|
easier to understand. |
|
|
|
|
|
Performance, Internal Implementation, Development Support etc. |
|
|
|
* The use of errno as a means to carry the nature of error in the ref |
|
API implementation has been reworked and reduced. |
|
|
|
* Teach and encourage first-time contributors to this project to |
|
state the base commit when they submit their topic. |
|
|
|
* The command line complation for "git send-email" options have been |
|
tweaked to make it easier to keep it in sync with the command itself. |
|
|
|
* Ensure that the sparseness of the in-core index matches the |
|
index.sparse configuration specified by the repository immediately |
|
after the on-disk index file is read. |
|
|
|
* Code clean-up to eventually allow information on remotes defined |
|
for an arbitrary repository to be read. |
|
|
|
* Build optimization. |
|
|
|
* Tighten code for testing pack-bitmap. |
|
|
|
* Weather balloon to break people with compilers that do not support |
|
C99. |
|
|
|
* The "reftable" backend for the refs API, without integrating into |
|
the refs subsystem, has been added. |
|
|
|
* More tests are marked as leak-free. |
|
|
|
* The test framework learns to list unsatisfied test prerequisites, |
|
and optionally error out when prerequisites that are expected to be |
|
satisfied are not. |
|
|
|
* The default setting for trace2 event nesting was too low to cause |
|
test failures, which is worked around by bumping it up in the test |
|
framework. |
|
|
|
* Drop support for TravisCI and update test workflows at GitHub. |
|
|
|
* Many tests that used to need GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
|
mechanism to force "git" to use 'master' as the default name for |
|
the initial branch no longer need it; the use of the mechanism from |
|
them have been removed. |
|
|
|
* Allow running our tests while disabling fsync. |
|
|
|
* Document the parameters given to the reflog entry iterator callback |
|
functions. |
|
(merge e6e94f34b2 jc/reflog-iterator-callback-doc later to maint). |
|
|
|
* The test helper for refs subsystem learned to write bogus and/or |
|
nonexistent object name to refs to simulate error situations we |
|
want to test Git in. |
|
|
|
* "diff --histogram" optimization. |
|
|
|
* Weather balloon to find compilers that do not grok variable |
|
declaration in the for() loop. |
|
|
|
* diff and blame commands have been taught to work better with sparse |
|
index. |
|
|
|
|
|
Fixes since v2.34 |
|
----------------- |
|
|
|
* "git grep" looking in a blob that has non-UTF8 payload was |
|
completely broken when linked with certain versions of PCREv2 |
|
library in the latest release. |
|
|
|
* Other code cleanup, docfix, build fix, etc. |
|
|
|
* "git pull" with any strategy when the other side is behind us |
|
should succeed as it is a no-op, but doesn't. |
|
|
|
* An earlier change in 2.34.0 caused JGit application (that abused |
|
GIT_EDITOR mechanism when invoking "git config") to get stuck with |
|
a SIGTTOU signal; it has been reverted. |
|
|
|
* An earlier change that broke .gitignore matching has been reverted. |
|
|
|
* Things like "git -c branch.sort=bogus branch new HEAD", i.e. the |
|
operation modes of the "git branch" command that do not need the |
|
sort key information, no longer errors out by seeing a bogus sort |
|
key. |
|
(merge 98e7ab6d42 jc/fix-ref-sorting-parse later to maint). |
|
|
|
* The compatibility implementation for unsetenv(3) were written to |
|
mimic ancient, non-POSIX, variant seen in an old glibc; it has been |
|
changed to return an integer to match the more modern era. |
|
(merge a38989bd5b jc/unsetenv-returns-an-int later to maint). |
|
|
|
* The clean/smudge conversion code path has been prepared to better |
|
work on platforms where ulong is narrower than size_t. |
|
(merge 596b5e77c9 mc/clean-smudge-with-llp64 later to maint). |
|
|
|
* Redact the path part of packfile URI that appears in the trace output. |
|
(merge 0ba558ffb1 if/redact-packfile-uri later to maint). |
|
|
|
* CI has been taught to catch some Unicode directional formatting |
|
sequence that can be used in certain mischief. |
|
(merge 0e7696c64d js/ci-no-directional-formatting later to maint). |
|
|
|
* The "--date=format:<strftime>" gained a workaround for the lack of |
|
system support for a non-local timezone to handle "%s" placeholder. |
|
(merge 9b591b9403 jk/strbuf-addftime-seconds-since-epoch later to maint). |
|
|
|
* The "merge" subcommand of "git jump" (in contrib/) silently ignored |
|
pathspec and other parameters. |
|
(merge 67ba13e5a4 jk/jump-merge-with-pathspec later to maint). |
|
|
|
* The code to decode the length of packed object size has been |
|
corrected. |
|
(merge 34de5b8eac jt/pack-header-lshift-overflow later to maint). |
|
|
|
* The advice message given by "git pull" when the user hasn't made a |
|
choice between merge and rebase still said that the merge is the |
|
default, which no longer is the case. This has been corrected. |
|
(merge 71076d0edd ah/advice-pull-has-no-preference-between-rebase-and-merge later to maint). |
|
|
|
* "git fetch", when received a bad packfile, can fail with SIGPIPE. |
|
This wasn't wrong per-se, but we now detect the situation and fail |
|
in a more predictable way. |
|
(merge 2a4aed42ec jk/fetch-pack-avoid-sigpipe-to-index-pack later to maint). |
|
|
|
* The function to cull a child process and determine the exit status |
|
had two separate code paths for normal callers and callers in a |
|
signal handler, and the latter did not yield correct value when the |
|
child has caught a signal. The handling of the exit status has |
|
been unified for these two code paths. An existing test with |
|
flakiness has also been corrected. |
|
(merge 5263e22cba jk/t7006-sigpipe-tests-fix later to maint). |
|
|
|
* When a non-existent program is given as the pager, we tried to |
|
reuse an uninitialized child_process structure and crashed, which |
|
has been fixed. |
|
(merge f917f57f40 em/missing-pager later to maint). |
|
|
|
* The single-key-input mode in "git add -p" had some code to handle |
|
keys that generate a sequence of input via ReadKey(), which did not |
|
handle end-of-file correctly, which has been fixed. |
|
(merge fc8a8126df cb/add-p-single-key-fix later to maint). |
|
|
|
* "git rebase -x" added an unnecessary 'exec' instructions before |
|
'noop', which has been corrected. |
|
(merge cc9dcdee61 en/rebase-x-fix later to maint). |
|
|
|
* When the "git push" command is killed while the receiving end is |
|
trying to report what happened to the ref update proposals, the |
|
latter used to die, due to SIGPIPE. The code now ignores SIGPIPE |
|
to increase our chances to run the post-receive hook after it |
|
happens. |
|
(merge d34182b9e3 rj/receive-pack-avoid-sigpipe-during-status-reporting later to maint). |
|
|
|
* "git worktree add" showed "Preparing worktree" message to the |
|
standard output stream, but when it failed, the message from die() |
|
went to the standard error stream. Depending on the order the |
|
stdio streams are flushed at the program end, this resulted in |
|
confusing output. It has been corrected by sending all the chatty |
|
messages to the standard error stream. |
|
(merge b50252484f es/worktree-chatty-to-stderr later to maint). |
|
|
|
* Coding guideline document has been updated to clarify what goes to |
|
standard error in our system. |
|
(merge e258eb4800 es/doc-stdout-vs-stderr later to maint). |
|
|
|
* The sparse-index/sparse-checkout feature had a bug in its use of |
|
the matching code to determine which path is in or outside the |
|
sparse checkout patterns. |
|
(merge 8c5de0d265 ds/sparse-deep-pattern-checkout-fix later to maint). |
|
|
|
* "git rebase -x" by mistake started exporting the GIT_DIR and |
|
GIT_WORK_TREE environment variables when the command was rewritten |
|
in C, which has been corrected. |
|
(merge 434e0636db en/rebase-x-wo-git-dir-env later to maint). |
|
|
|
* When "git log" implicitly enabled the "decoration" processing |
|
without being explicitly asked with "--decorate" option, it failed |
|
to read and honor the settings given by the "--decorate-refs" |
|
option. |
|
|
|
* Other code cleanup, docfix, build fix, etc. |
|
(merge 74db416c9c cw/protocol-v2-doc-fix later to maint). |
|
(merge f9b2b6684d ja/doc-cleanup later to maint). |
|
(merge 7d1b866778 jc/fix-first-object-walk later to maint). |
|
(merge 538ac74604 js/trace2-avoid-recursive-errors later to maint). |
|
(merge 152923b132 jk/t5319-midx-corruption-test-deflake later to maint). |
|
(merge 9081a421a6 ab/checkout-branch-info-leakfix later to maint). |
|
(merge 42c456ff81 rs/mergesort later to maint). |
|
(merge ad506e6780 tl/midx-docfix later to maint). |
|
(merge bf5b83fd8a hk/ci-checkwhitespace-commentfix later to maint). |
|
(merge 49f1eb3b34 jk/refs-g11-workaround later to maint). |
|
(merge 7d3fc7df70 jt/midx-doc-fix later to maint). |
|
(merge 7b089120d9 hn/create-reflog-simplify later to maint). |
|
(merge 9e12400da8 cb/mingw-gmtime-r later to maint). |
|
(merge 0bf0de6cc7 tb/pack-revindex-on-disk-cleanup later to maint). |
|
(merge 2c68f577fc ew/cbtree-remove-unused-and-broken-cb-unlink later to maint). |
|
(merge eafd6e7e55 ab/die-with-bug later to maint). |
|
(merge 91028f7659 jc/grep-patterntype-default-doc later to maint).
|
|
|