2019-11-10 10:00:59 +01:00
|
|
|
Git 2.25 Release Notes
|
|
|
|
======================
|
|
|
|
|
|
|
|
Updates since v2.24
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
Backward compatibility notes
|
|
|
|
|
|
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
|
|
|
|
* A tutorial on object enumeration has been added.
|
|
|
|
|
|
|
|
* The branch description ("git branch --edit-description") has been
|
|
|
|
used to fill the body of the cover letters by the format-patch
|
|
|
|
command; this has been enhanced so that the subject can also be
|
|
|
|
filled.
|
|
|
|
|
|
|
|
* "git rebase --preserve-merges" has been marked as deprecated; this
|
|
|
|
release stops advertising it in the "git rebase -h" output.
|
|
|
|
|
|
|
|
* The code to generate multi-pack index learned to show (or not to
|
|
|
|
show) progress indicators.
|
|
|
|
|
|
|
|
* "git apply --3way" learned to honor merge.conflictStyle
|
|
|
|
configuration variable, like merges would.
|
|
|
|
|
|
|
|
* The custom format for "git log --format=<format>" learned the l/L
|
|
|
|
placeholder that is similar to e/E that fills in the e-mail
|
|
|
|
address, but only the local part on the left side of '@'.
|
|
|
|
|
2019-12-01 18:04:07 +01:00
|
|
|
* Documentation pages for "git shortlog" now list commit limiting
|
|
|
|
options explicitly.
|
|
|
|
|
|
|
|
* The patterns to detect function boundary for Elixir language has
|
|
|
|
been added.
|
|
|
|
|
|
|
|
* The completion script (in contrib/) learned that the "--onto"
|
|
|
|
option of "git rebase" can take its argument as the value of the
|
|
|
|
option.
|
|
|
|
|
2019-12-05 21:43:59 +01:00
|
|
|
* The userdiff machinery has been taught that "async def" is another
|
|
|
|
way to begin a "function" in Python.
|
|
|
|
|
|
|
|
* "git range-diff" learned to take the "--notes=<ref>" and the
|
|
|
|
"--no-notes" options to control the commit notes included in the
|
|
|
|
log message that gets compared.
|
|
|
|
|
|
|
|
* "git rev-parse --show-toplevel" run outside of any working tree did
|
|
|
|
not error out, which has been corrected.
|
|
|
|
|
2019-12-10 22:53:00 +01:00
|
|
|
* A few commands learned to take the pathspec from the
|
|
|
|
standard input or a named file, instead of taking it as the command
|
|
|
|
line arguments.
|
|
|
|
|
|
|
|
* "git rebase -i" learned a few options that are known by "git
|
|
|
|
rebase" proper.
|
|
|
|
|
|
|
|
* "git submodule" learned a subcommand "set-url".
|
|
|
|
|
|
|
|
* "git log" family learned "--pretty=reference" that gives the name
|
|
|
|
of a commit in the format that is often used to refer to it in log
|
|
|
|
messages.
|
|
|
|
|
|
|
|
* The interaction between "git clone --recurse-submodules" and
|
|
|
|
alternate object store was ill-designed. The documentation and
|
|
|
|
code have been taught to make more clear recommendations when the
|
|
|
|
users see failures.
|
|
|
|
|
2019-11-10 10:00:59 +01:00
|
|
|
|
|
|
|
Performance, Internal Implementation, Development Support etc.
|
|
|
|
|
|
|
|
* Debugging support for lazy cloning has been a bit improved.
|
|
|
|
|
|
|
|
* Move the definition of a set of bitmask constants from 0ctal
|
|
|
|
literal to (1U<<count) notation.
|
|
|
|
|
|
|
|
* Test updates to prepare for SHA-2 transition continues.
|
|
|
|
|
2019-12-01 18:04:07 +01:00
|
|
|
* Crufty code and logic accumulated over time around the object
|
|
|
|
parsing and low-level object access used in "git fsck" have been
|
|
|
|
cleaned up.
|
|
|
|
|
|
|
|
* The implementation of "git log --graph" got refactored and then its
|
|
|
|
output got simplified.
|
|
|
|
|
|
|
|
* Follow recent push to move API docs from Documentation/ to header
|
|
|
|
files and update config.h
|
|
|
|
|
|
|
|
* "git bundle" has been taught to use the parse options API. "git
|
|
|
|
bundle verify" learned "--quiet" and "git bundle create" learned
|
|
|
|
options to control the progress output.
|
|
|
|
|
|
|
|
* Handling of commit objects that use non UTF-8 encoding during
|
|
|
|
"rebase -i" has been improved.
|
|
|
|
|
2019-12-05 21:43:59 +01:00
|
|
|
* The beginning of rewriting "git add -i" in C.
|
|
|
|
|
|
|
|
* A label used in the todo list that are generated by "git rebase
|
|
|
|
--rebase-merges" is used as a part of a refname; the logic to come
|
|
|
|
up with the label has been tightened to avoid names that cannot be
|
|
|
|
used as such.
|
|
|
|
|
|
|
|
* The logic to avoid duplicate label names generated by "git rebase
|
|
|
|
--rebase-merges" forgot that the machinery itself uses "onto" as a
|
|
|
|
label name, which must be avoided by auto-generated labels, which
|
|
|
|
has been corrected.
|
|
|
|
|
|
|
|
* We have had compatibility fallback macro definitions for "PRIuMAX",
|
|
|
|
"PRIu32", etc. but did not for "PRIdMAX", while the code used the
|
|
|
|
last one apparently without any hiccup reported recently. The
|
|
|
|
fallback macro definitions for these <inttypes.h> macros that must
|
|
|
|
appear in C99 systems have been removed.
|
|
|
|
|
|
|
|
* Recently we have declared that GIT_TEST_* variables take the
|
|
|
|
usual boolean values (it used to be that some used "non-empty
|
|
|
|
means true" and taking GIT_TEST_VAR=YesPlease as true); make
|
|
|
|
sure we notice and fail when non-bool strings are given to
|
|
|
|
these variables.
|
|
|
|
|
|
|
|
* Users of oneway_merge() (like "reset --hard") learned to take
|
|
|
|
advantage of fsmonitor to avoid unnecessary lstat(2) calls.
|
|
|
|
|
2019-12-07 00:10:00 +01:00
|
|
|
* Performance tweak on "git push" into a repository with many refs
|
|
|
|
that point at objects we have never heard of.
|
|
|
|
|
|
|
|
* PerfTest fix to avoid stale result mixed up with the latest round
|
|
|
|
of test results.
|
|
|
|
|
2019-12-10 22:53:00 +01:00
|
|
|
* Hide lower-level verify_signed-buffer() API as a pure helper to
|
|
|
|
implement the public check_signature() function, in order to
|
|
|
|
encourage new callers to use the correct and more strict
|
|
|
|
validation.
|
|
|
|
|
2019-11-10 10:00:59 +01:00
|
|
|
|
|
|
|
Fixes since v2.24
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
* "rebase -i" ceased to run post-commit hook by mistake in an earlier
|
|
|
|
update, which has been corrected.
|
|
|
|
|
|
|
|
* "git notes copy $original" ought to copy the notes attached to the
|
|
|
|
original object to HEAD, but a mistaken tightening to command line
|
|
|
|
parameter validation made earlier disabled that feature by mistake.
|
|
|
|
|
|
|
|
* When all files from some subdirectory were renamed to the root
|
|
|
|
directory, the directory rename heuristics would fail to detect that
|
|
|
|
as a rename/merge of the subdirectory to the root directory, which has
|
|
|
|
been corrected.
|
|
|
|
|
|
|
|
* Code clean-up and a bugfix in the logic used to tell worktree local
|
|
|
|
and repository global refs apart.
|
|
|
|
(merge f45f88b2e4 sg/dir-trie-fixes later to maint).
|
|
|
|
|
|
|
|
* "git stash save" in a working tree that is sparsely checked out
|
|
|
|
mistakenly removed paths that are outside the area of interest.
|
|
|
|
(merge 4a58c3d7f7 js/update-index-ignore-removal-for-skip-worktree later to maint).
|
|
|
|
|
2019-12-01 18:04:07 +01:00
|
|
|
* "git rev-parse --git-path HEAD.lock" did not give the right path
|
|
|
|
when run in a secondary worktree.
|
|
|
|
(merge 76a53d640f js/git-path-head-dot-lock-fix later to maint).
|
|
|
|
|
|
|
|
* "git merge --no-commit" needs "--no-ff" if you do not want to move
|
|
|
|
HEAD, which has been corrected in the manual page for "git bisect".
|
|
|
|
(merge 8dd327b246 ma/bisect-doc-sample-update later to maint).
|
|
|
|
|
|
|
|
* "git worktree add" internally calls "reset --hard" that should not
|
|
|
|
descend into submodules, even when submodule.recurse configuration
|
|
|
|
is set, but it was affected. This has been corrected.
|
|
|
|
(merge 4782cf2ab6 pb/no-recursive-reset-hard-in-worktree-add later to maint).
|
|
|
|
|
|
|
|
* Messages from die() etc. can be mixed up from multiple processes
|
|
|
|
without even line buffering on Windows, which has been worked
|
|
|
|
around.
|
|
|
|
(merge 116d1fa6c6 js/vreportf-wo-buffering later to maint).
|
|
|
|
|
|
|
|
* HTTP transport had possible allocator/deallocator mismatch, which
|
|
|
|
has been corrected.
|
|
|
|
|
|
|
|
* The watchman integration for fsmonitor was racy, which has been
|
|
|
|
corrected to be more conservative.
|
|
|
|
(merge dd0b61f577 kw/fsmonitor-watchman-fix later to maint).
|
|
|
|
|
|
|
|
* Fetching from multiple remotes into the same repository in parallel
|
|
|
|
had a bad interaction with the recent change to (optionally) update
|
|
|
|
the commit-graph after a fetch job finishes, as these parallel
|
|
|
|
fetches compete with each other. Which has been corrected.
|
|
|
|
|
|
|
|
* Recent update to "git stash pop" made the command empty the index
|
|
|
|
when run with the "--quiet" option, which has been corrected.
|
|
|
|
|
|
|
|
* "git fetch" codepath had a big "do not lazily fetch missing objects
|
|
|
|
when I ask if something exists" switch. This has been corrected by
|
|
|
|
marking the "does this thing exist?" calls with "if not please do not
|
|
|
|
lazily fetch it" flag.
|
|
|
|
|
|
|
|
* Test update to avoid wasted cycles.
|
|
|
|
(merge e0316695ec sg/skip-skipped-prereq later to maint).
|
|
|
|
|
|
|
|
* Error handling after "git push" finishes sending the packdata and
|
|
|
|
waits for the response to the remote side has been improved.
|
|
|
|
(merge ad7a403268 jk/send-pack-remote-failure later to maint).
|
|
|
|
|
|
|
|
* Some codepaths in "gitweb" that forgot to escape URLs generated
|
|
|
|
based on end-user input have been corrected.
|
|
|
|
(merge a376e37b2c jk/gitweb-anti-xss later to maint).
|
|
|
|
|
2019-12-05 21:43:59 +01:00
|
|
|
* CI jobs for macOS has been made less chatty when updating perforce
|
|
|
|
package used during testing.
|
|
|
|
(merge 0dbc4a0edf jc/azure-ci-osx-fix-fix later to maint).
|
|
|
|
|
|
|
|
* "git unpack-objects" used to show progress based only on the number
|
|
|
|
of received and unpacked objects, which stalled when it has to
|
|
|
|
handle an unusually large object. It now shows the throughput as
|
|
|
|
well.
|
|
|
|
(merge bae60ba7e9 sg/unpack-progress-throughput later to maint).
|
|
|
|
|
|
|
|
* The sequencer machinery compared the HEAD and the state it is
|
|
|
|
attempting to commit to decide if the result would be a no-op
|
|
|
|
commit, even when amending a commit, which was incorrect, and
|
|
|
|
has been corrected.
|
|
|
|
|
|
|
|
* The code to parse GPG output used to assume incorrectly that the
|
|
|
|
finterprint for the primary key would always be present for a valid
|
|
|
|
signature, which has been corrected.
|
|
|
|
(merge 67a6ea6300 hi/gpg-optional-pkfp-fix later to maint).
|
|
|
|
|
|
|
|
* "git submodule status" and "git submodule status --cached" show
|
|
|
|
different things, but the documentation did not cover them
|
|
|
|
correctly, which has been corrected.
|
|
|
|
(merge 8d483c8408 mg/doc-submodule-status-cached later to maint).
|
|
|
|
|
|
|
|
* "git reset --patch $object" without any pathspec should allow a
|
|
|
|
tree object to be given, but incorrectly required a committish,
|
|
|
|
which has been corrected.
|
|
|
|
|
|
|
|
* "git submodule status" that is run from a subdirectory of the
|
|
|
|
superproject did not work well, which has been corrected.
|
|
|
|
(merge 1f3aea22c7 mg/submodule-status-from-a-subdirectory later to maint).
|
|
|
|
|
|
|
|
* The revision walking machinery uses resources like per-object flag
|
|
|
|
bits that need to be reset before a new iteration of walking
|
|
|
|
begins, but the resources related to topological walk were not
|
|
|
|
cleared correctly, which has been corrected.
|
|
|
|
(merge 0aa0c2b2ec mh/clear-topo-walk-upon-reset later to maint).
|
|
|
|
|
2019-12-07 00:10:00 +01:00
|
|
|
* TravisCI update.
|
|
|
|
(merge 176441bfb5 sg/osx-force-gcc-9 later to maint).
|
|
|
|
|
|
|
|
* While running "revert" or "cherry-pick --edit" for multiple
|
|
|
|
commits, a recent regression incorrectly detected "nothing to
|
|
|
|
commit, working tree clean", instead of replaying the commits,
|
|
|
|
which has been corrected.
|
|
|
|
(merge befd4f6a81 sg/assume-no-todo-update-in-cherry-pick later to maint).
|
|
|
|
|
2019-12-10 22:53:00 +01:00
|
|
|
* Work around a issue where a FD that is left open when spawning a
|
|
|
|
child process and is kept open in the child can interfere with the
|
|
|
|
operation in the parent process on Windows.
|
|
|
|
|
|
|
|
* One kind of progress messages were always given during commit-graph
|
|
|
|
generation, instead of following the "if it takes more than two
|
|
|
|
seconds, show progress" pattern, which has been corrected.
|
|
|
|
|
2019-11-10 10:00:59 +01:00
|
|
|
* Other code cleanup, docfix, build fix, etc.
|
|
|
|
(merge 80736d7c5e jc/am-show-current-patch-docfix later to maint).
|
|
|
|
(merge 8b656572ca sg/commit-graph-usage-fix later to maint).
|
2019-12-01 18:04:07 +01:00
|
|
|
(merge 6c02042139 mr/clone-dir-exists-to-path-exists later to maint).
|
|
|
|
(merge 44ae131e38 sg/blame-indent-heuristics-is-now-the-default later to maint).
|
|
|
|
(merge 0115e5d929 dl/doc-diff-no-index-implies-exit-code later to maint).
|
|
|
|
(merge 270de6acbe en/t6024-style later to maint).
|
|
|
|
(merge 14c4776d75 ns/test-desc-typofix later to maint).
|
|
|
|
(merge 68d40f30c4 dj/typofix-merge-strat later to maint).
|
|
|
|
(merge f66e0401ab jk/optim-in-pack-idx-conversion later to maint).
|
|
|
|
(merge 169bed7421 rs/parse-options-dup-null-fix later to maint).
|
|
|
|
(merge 51bd6be32d rs/use-copy-array-in-mingw-shell-command-preparation later to maint).
|
|
|
|
(merge b018719927 ma/t7004 later to maint).
|
|
|
|
(merge 932757b0cc ar/install-doc-update-cmds-needing-the-shell later to maint).
|
2019-12-05 21:43:59 +01:00
|
|
|
(merge 46efd28be1 ep/guard-kset-tar-headers later to maint).
|
|
|
|
(merge 9e5afdf997 ec/fetch-mark-common-refs-trace2 later to maint).
|
|
|
|
(merge f0e58b3fe8 pb/submodule-update-fetches later to maint).
|
|
|
|
(merge 2a02262078 dl/t5520-cleanup later to maint).
|
|
|
|
(merge a4fb016ba1 js/pkt-line-h-typofix later to maint).
|
2019-12-07 00:10:00 +01:00
|
|
|
(merge 54a7a64613 rs/simplify-prepare-cmd later to maint).
|
|
|
|
(merge 3eae30e464 jk/lore-is-the-archive later to maint).
|
|
|
|
(merge 14b7664df8 dl/lore-is-the-archive later to maint).
|
2019-12-10 22:53:00 +01:00
|
|
|
(merge 0e40a73a4c po/bundle-doc-clonable later to maint).
|
|
|
|
(merge e714b898c6 as/t7812-missing-redirects-fix later to maint).
|
|
|
|
(merge 528d9e6d01 jk/perf-wo-git-dot-pm later to maint).
|
|
|
|
(merge fc42f20e24 sg/test-squelch-noise-in-commit-bulk later to maint).
|
|
|
|
(merge c64368e3a2 bc/t9001-zsh-in-posix-emulation-mode later to maint).
|