worktree: introduce is_shared_symref()
[alt-git.git] / Documentation / RelNotes / 2.40.0.txt
blob629d3c698062eb4327eaaa9f13fb446878f5f196
1 Git v2.40 Release Notes
2 =======================
4 UI, Workflows & Features
6  * "merge-tree" learns a new `--merge-base` option.
8  * "git jump" (in contrib/) learned to present the "quickfix list" to
9    its standard output (instead of letting it consumed by the editor
10    it invokes), and learned to also drive emacs/emacsclient.
12  * "git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable
13    given an empty value used to behave identically.  Now the latter
14    just gives an empty output, while the former still gives an error
15    message.
17  * Introduce a case insensitive mode to the Bash completion helpers.
19  * The advice message given by "git status" when it takes long time to
20    enumerate untracked paths has been updated.
22  * Just like "git var GIT_EDITOR" abstracts the complex logic to
23    choose which editor gets used behind it, "git var" now give support
24    to GIT_SEQUENCE_EDITOR.
26  * "git format-patch" learned to honor format.mboxrd even when sending
27    patches to the standard output stream,
29  * 'cat-file' gains mailmap support for its '--batch-check' and '-s'
30    options.
32  * Conditionally skip the pre-applypatch and applypatch-msg hooks when
33    applying patches with 'git am'.
35  * Introduce an optional configuration to allow the trailing hash that
36    protects the index file from bit flipping.
39 Performance, Internal Implementation, Development Support etc.
41  * `git bisect` becomes a builtin.
43  * The pack-bitmap machinery is taught to log the paths of redundant
44    bitmap(s) to trace2 instead of stderr.
46  * Use the SHA1DC implementation on macOS, just like other platforms,
47    by default.
49  * Even in a repository with promisor remote, it is useless to
50    attempt to lazily attempt fetching an object that is expected to be
51    commit, because no "filter" mode omits commit objects.  Take
52    advantage of this assumption to fail fast on errors.
54  * Stop using "git --super-prefix" and narrow the scope of its use to
55    the submodule--helper.
57  * Stop running win+VS build by default.
58    (merge a0da6deeec js/ci-disable-cmake-by-default later to maint).
60  * CI updates.  We probably want a clean-up to move the long shell
61    script embedded in yaml file into a separate file, but that can
62    come later.
63    (merge 4542582e59 cw/ci-whitespace later to maint).
65  * Use `git diff --no-index` as a test_cmp on Windows.
67    We'd probably need to revisit "do we really want to, and have to,
68    lose CRLF vs LF?" later, at which time we may be able to further
69    clean this up by replacing "git diff --no-index" with "diff -u".
71  * Avoid unnecessary builds in CI, with settings configured in
72    ci-config.
73    (merge eb5b03a9c0 tb/ci-concurrency later to maint).
76 Fixes since v2.39
77 -----------------
79  * Various leak fixes.
80    (merge ac95f5d36a ab/various-leak-fixes later to maint).
82  * Fix a bug where `pack-objects` would not respect multiple `--filter`
83    arguments when invoked directly.
84    (merge d4f7036887 rs/multi-filter-args later to maint).
86  * Make fsmonitor more robust to avoid the flakiness seen in t7527.
87    (merge 6692d45477 jh/t7527-unflake-by-forcing-cookie later to maint).
89  * Stop using deprecated macOS API in fsmonitor.
90    (merge b0226007f0 jh/fsmonitor-darwin-modernize later to maint).
92  * Redefining system functions for a few functions did not follow our
93    usual "implement git_foo() and #define foo(args) git_foo(args)"
94    pattern, which has broken build for some folks.
95    (merge e1a95b78d8 jk/avoid-redef-system-functions-2.30 later to maint).
96    (merge 395bec6b39 jk/avoid-redef-system-functions later to maint).
98  * The way the diff machinery prepares the options array for the
99    parse_options API has been refactored to avoid resource leaks.
100    (merge 189e97bc4b rs/diff-parseopts later to maint).
102  * Correct pthread API usage.
103    (merge 786e67611d sx/pthread-error-check-fix later to maint).
105  * The code to auto-correct a misspelt subcommand unnecessarily called
106    into git_default_config() from the early config codepath, which was
107    a no-no.  This has bee corrected.
108    (merge 0918d08887 sg/help-autocorrect-config-fix later to maint).
110  * "git http-fetch" (which is rarely used) forgot to identify itself
111    in the trace2 output.
112    (merge 7abb43cbc8 jt/http-fetch-trace2-report-name later to maint).
114  * The output from "git diff --stat" on an unmerged path lost the
115    terminating LF in Git 2.39, which has been corrected.
116    (merge 209d9cb011 pg/diff-stat-unmerged-regression-fix later to maint).
118  * "git pull -v --recurse-submodules" attempted to pass "-v" down to
119    underlying "git submodule update", which did not understand the
120    request and barfed, which has been corrected.
121    (merge 6f65f84766 ss/pull-v-recurse-fix later to maint).
123  * When given a pattern that matches an empty string at the end of a
124    line, the code to parse the "git diff" line-ranges fell into an
125    infinite loop, which has been corrected.
126    (merge 4e57c88e02 lk/line-range-parsing-fix later to maint).
128  * Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to
129    flush its output to the disk..
130    (merge ce54672f9b ps/fsync-refs-fix later to maint).
132  * Fix to a small regression in 2.38 days.
133    (merge 6d5e9e53aa ab/bundle-wo-args later to maint).
135  * "git diff --relative" did not mix well with "git diff --ext-diff",
136    which has been corrected.
137    (merge f034bb1cad jk/ext-diff-with-relative later to maint).
139  * The logic to see if we are using the "cone" mode by checking the
140    sparsity patterns has been tightened to avoid mistaking a pattern
141    that names a single file as specifying a cone.
142    (merge 5842710dc2 ws/single-file-cone later to maint).
144  * Deal with a few deprecation warning from cURL library.
145    (merge 6c065f72b8 jk/curl-avoid-deprecated-api later to maint).
147  * Doc update for environment variables set when hooks are invoked.
148    (merge 772f8ff826 es/hooks-and-local-env later to maint).
150  * Document ORIG_HEAD a bit more.
151    (merge f1c9243fc5 pb/doc-orig-head later to maint).
153  * Other code cleanup, docfix, build fix, etc.
154    (merge 77e04b2ed4 rs/t4205-do-not-exit-in-test-script later to maint).
155    (merge faebba436e rs/plug-pattern-list-leak-in-lof later to maint).
156    (merge 243caa8982 ab/t5314-avoid-losing-exit-status later to maint).
157    (merge 4d81ce1b99 ab/t7600-avoid-losing-exit-status-of-git later to maint).
158    (merge 5f3bfdc4f3 ab/t4023-avoid-losing-exit-status-of-diff later to maint).
159    (merge 500317ae03 js/t3920-shell-and-or-fix later to maint).
160    (merge 86325d36e6 rs/t3920-crlf-eating-grep-fix later to maint).
161    (merge cfbd173ccb rj/branch-copy-and-rename later to maint).
162    (merge c25d9e529d jk/unused-post-2.39 later to maint).
163    (merge a31cfe3283 jk/server-supports-v2-cleanup later to maint).
164    (merge a658e881c1 rs/am-parse-options-cleanup later to maint).
165    (merge 4cb39fcf19 rs/clear-commit-marks-cleanup later to maint).
166    (merge b07a819c05 rs/reflog-expiry-cleanup later to maint).
167    (merge d422d06167 rs/clarify-error-in-write-loose-object later to maint).
168    (merge 92cb135855 sk/remove-duplicate-includes later to maint).
169    (merge 4eb1ccecd4 dh/mingw-ownership-check-typofix later to maint).
170    (merge f95526419b ar/typofix-gitattributes-doc later to maint).
171    (merge 27875aeec9 km/doc-branch-start-point later to maint).
172    (merge 35c194dc57 es/t1509-root-fixes later to maint).
173    (merge 7b341645e3 pw/ci-print-failure-name-fix later to maint).
174    (merge bcb71d45bf jx/t1301-updates later to maint).
175    (merge ebdc46c242 jc/doc-diff-patch.txt later to maint).
176    (merge a87a20cbb4 ar/test-cleanup later to maint).
177    (merge f5156f1885 ar/bisect-doc-update later to maint).
178    (merge fca2d86c97 jk/interop-error later to maint).
179    (merge cf4936ed74 tl/ls-tree-code-clean-up later to maint).