date API: create a date.h, split from cache.h
[alt-git.git] / Documentation / RelNotes / 2.36.0.txt
blobbac3efd715f2b2d1cb3cf7abf61368ad9401e8ba
1 Git 2.36 Release Notes
2 ======================
4 Updates since Git 2.35
5 ----------------------
7 Backward compatibility warts
9  * "git name-rev --stdin" has been deprecated and issues a warning
10    when used; use "git name-rev --annotate-stdin" instead.
13 Note to those who build from the source
15  *
18 UI, Workflows & Features
20  * Assorted updates to "git cat-file", especially "-h".
23 Performance, Internal Implementation, Development Support etc.
25  * "git apply" (ab)used the util pointer of the string-list to keep
26    track of how each symbolic link needs to be handled, which has been
27    simplified by using strset.
29  * Fix a hand-rolled alloca() imitation that may have violated
30    alignment requirement of data being sorted in compatibility
31    implementation of qsort_s() and stable qsort().
33  * Use the parse-options API in "git reflog" command.
35  * The conditional inclusion mechanism of configuration files using
36    "[includeIf <condition>]" learns to base its decision on the
37    URL of the remote repository the repository interacts with.
38    (merge 399b198489 jt/conditional-config-on-remote-url later to maint).
40  * "git name-rev --stdin" does not behave like usual "--stdin" at
41    all.  Start the process of renaming it to "--annotate-stdin".
42    (merge a2585719b3 jc/name-rev-stdin later to maint).
45 Fixes since v2.35
46 -----------------
48  * "rebase" and "stash" in secondary worktrees are broken in
49    Git 2.35.0, which has been corrected.
51  * "git pull --rebase" ignored the rebase.autostash configuration
52    variable when the remote history is a descendant of our history,
53    which has been corrected.
54    (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).
56  * "git update-index --refresh" has been taught to deal better with
57    racy timestamps (just like "git status" already does).
58    (merge 2ede073fd2 ms/update-index-racy later to maint).
60  * Avoid tests that are run under GIT_TRACE2 set from failing
61    unnecessarily.
62    (merge 944d808e42 js/test-unset-trace2-parents later to maint).
64  * The merge-ort misbehaved when merge.renameLimit configuration is
65    set too low and failed to find all renames.
66    (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).
68  * We explain that revs come first before the pathspec among command
69    line arguments, but did not spell out that dashed options come
70    before other args, which has been corrected.
71    (merge c11f95010c tl/doc-cli-options-first later to maint).
73  * "git add -p" rewritten in C regressed hunk splitting in some cases,
74    which has been corrected.
75    (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).
77  * "git fetch --negotiate-only" is an internal command used by "git
78    push" to figure out which part of our history is missing from the
79    other side.  It should never recurse into submodules even when
80    fetch.recursesubmodules configuration variable is set, nor it
81    should trigger "gc".  The code has been tightened up to ensure it
82    only does common ancestry discovery and nothing else.
83    (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).
85  * The code path that verifies signatures made with ssh were made to
86    work better on a system with CRLF line endings.
87    (merge caeef01ea7 fs/ssh-signing-crlf later to maint).
89  * "git sparse-checkout init" failed to write into $GIT_DIR/info
90    directory when the repository was created without one, which has
91    been corrected to auto-create it.
92    (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).
94  * Cloning from a repository that does not yet have any branches or
95    tags but has other refs resulted in a "remote transport reported
96    error", which has been corrected.
97    (merge dccea605b6 jt/clone-not-quite-empty later to maint).
99  * Mark in various places in the code that the sparse index and the
100    split index features are mutually incompatible.
101    (merge 451b66c533 js/sparse-vs-split-index later to maint).
103  * Update the logic to compute alignment requirement for our mem-pool.
104    (merge e38bcc66d8 jc/mem-pool-alignment later to maint).
106  * Pick a better random number generator and use it when we prepare
107    temporary filenames.
108    (merge 47efda967c bc/csprng-mktemps later to maint).
110  * Update the contributor-facing documents on proposed log messages.
111    (merge cdba0295b0 jc/doc-log-messages later to maint).
113  * When "git fetch --prune" failed to prune the refs it wanted to
114    prune, the command issued error messages but exited with exit
115    status 0, which has been corrected.
116    (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).
118  * Other code cleanup, docfix, build fix, etc.
119    (merge cfc5cf428b jc/find-header later to maint).
120    (merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).
121    (merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).
122    (merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).
123    (merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).
124    (merge 6046f7a91c en/plug-leaks-in-merge later to maint).
125    (merge 8c591dbfce bc/clarify-eol-attr later to maint).
126    (merge 518e15db74 rs/parse-options-lithelp-help later to maint).
127    (merge cbac0076ef gh/doc-typos later to maint).
128    (merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).
129    (merge 2826ffad8c rc/negotiate-only-typofix later to maint).
130    (merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).
131    (merge 74f3390dde sy/diff-usage-typofix later to maint).