Merge branch 'jk/sparse-leakfix'
[alt-git.git] / Documentation / RelNotes / 2.46.0.txt
blobd1e4d016a6d34442e9e09ae10c96e429f8df4a30
1 Git v2.46 Release Notes
2 =======================
4 Backward Compatibility Notes
6  (None at this moment)
8 UI, Workflows & Features
10  * The "--rfc" option of "git format-patch" learned to take an
11    optional string value to be used in place of "RFC" to tweak the
12    "[PATCH]" on the subject header.
14  * The credential helper protocol, together with the HTTP layer, have
15    been enhanced to support authentication schemes different from
16    username & password pair, like Bearer and NTLM.
18  * Command line completion script (in contrib/) learned to complete
19    "git symbolic-ref" a bit better (you need to enable plumbing
20    commands to be completed with GIT_COMPLETION_SHOW_ALL_COMMANDS).
22  * When the user responds to a prompt given by "git add -p" with an
23    unsupported command, list of available commands were given, which
24    was too much if the user knew what they wanted to type but merely
25    made a typo.  Now the user gets a much shorter error message.
27  * The color parsing code learned to handle 12-bit RGB colors, spelled
28    as "#RGB" (in addition to "#RRGGBB" that is already supported).
30  * The operation mode options (like "--get") the "git config" command
31    uses have been deprecated and replaced with subcommands (like "git
32    config get").
34  * "git tag" learned the "--trailer" option to futz with the trailers
35    in the same way as "git commit" does.
37  * A new global "--no-advice" option can be used to disable all advice
38    messages, which is meant to be used only in scripts.
40  * Updates to symbolic refs can now be made as a part of ref
41    transaction.
43  * The trailer API has been reshuffled a bit.
45  * Terminology to call various ref-like things are getting
46    straightened out.
48  * The command line completion script (in contrib/) has been adjusted
49    to the recent update to "git config" that adopted subcommand based
50    UI.
52  * The knobs to tweak how reftable files are written have been made
53    available as configuration variables.
55  * When "git push" notices that the commit at the tip of the ref on
56    the other side it is about to overwrite does not exist locally, it
57    used to first try fetching it if the local repository is a partial
58    clone. The command has been taught not to do so and immediately
59    fail instead.
61  * The promisor.quiet configuration knob can be set to true to make
62    lazy fetching from promisor remotes silent.
65 Performance, Internal Implementation, Development Support etc.
67  * Advertise "git contacts", a tool for newcomers to find people to
68    ask review for their patches, a bit more in our developer
69    documentation.
71  * In addition to building the objects needed, try to link the objects
72    that are used in fuzzer tests, to make sure at least they build
73    without bitrot, in Linux CI runs.
75  * Code to write out reftable has seen some optimization and
76    simplification.
78  * Tests to ensure interoperability between reftable written by jgit
79    and our code have been added and enabled in CI.
81  * The singleton index_state instance "the_index" has been eliminated
82    by always instantiating "the_repository" and replacing references
83    to "the_index"  with references to its .index member.
85  * Git-GUI has a new maintainer, Johannes Sixt.
87  * The "test-tool" has been taught to run testsuite tests in parallel,
88    bypassing the need to use the "prove" tool.
90  * The "whitespace check" task that was enabled for GitHub Actions CI
91    has been ported to GitLab CI.
93  * The refs API lost functions that implicitly assumes to work on the
94    primary ref_store by forcing the callers to pass a ref_store as an
95    argument.
97  * Code clean-up to reduce inter-function communication inside
98    builtin/config.c done via the use of global variables.
100  * The pack bitmap code saw some clean-up to prepare for a follow-up topic.
102  * Preliminary code clean-up for "git send-email".
104  * The default "creation-factor" used by "git format-patch" has been
105    raised to make it more aggressively find matching commits.
107  * Before discovering the repository details, We used to assume SHA-1
108    as the "default" hash function, which has been corrected. Hopefully
109    this will smoke out codepaths that rely on such an unwarranted
110    assumptions.
112  * The project decision making policy has been documented.
114  * The strcmp-offset tests have been rewritten using the unit test
115    framework.
117  * "git add -p" learned to complain when an answer with more than one
118    letter is given to a prompt that expects a single letter answer.
120  * The alias-expanded command lines are logged to the trace output.
123 Fixes since v2.45
124 -----------------
126  * "git rebase --signoff" used to forget that it needs to add a
127    sign-off to the resulting commit when told to continue after a
128    conflict stops its operation.
129    (merge a6c2654f83 pw/rebase-m-signoff-fix later to maint).
131  * The procedure to build multi-pack-index got confused by the
132    replace-refs mechanism, which has been corrected by disabling the
133    latter.
134    (merge 93e2ae1c95 xx/disable-replace-when-building-midx later to maint).
136  * The "-k" and "--rfc" options of "format-patch" will now error out
137    when used together, as one tells us not to add anything to the
138    title of the commit, and the other one tells us to add "RFC" in
139    addition to "PATCH".
140    (merge cadcf58085 ds/format-patch-rfc-and-k later to maint).
142  * "git stash -S" did not handle binary files correctly, which has
143    been corrected.
144    (merge 5fb7686409 aj/stash-staged-fix later to maint).
146  * A scheduled "git maintenance" job is expected to work on all
147    repositories it knows about, but it stopped at the first one that
148    errored out.  Now it keeps going.
149    (merge c75662bfc9 js/for-each-repo-keep-going later to maint).
151  * zsh can pretend to be a normal shell pretty well except for some
152    glitches that we tickle in some of our scripts. Work them around
153    so that "vimdiff" and our test suite works well enough with it.
154    (merge fedd5c79ff bc/zsh-compatibility later to maint).
156  * Command line completion support for zsh (in contrib/) has been
157    updated to stop exposing internal state to end-user shell
158    interaction.
159    (merge 3c20acdf46 dk/zsh-git-repo-path-fix later to maint).
161  * Tests that try to corrupt in-repository files in chunked format did
162    not work well on macOS due to its broken "mv", which has been
163    worked around.
165  * The maximum size of attribute files is enforced more consistently.
166    (merge c793f9cb08 tb/attr-limits later to maint).
168  * Unbreak CI jobs so that we do not attempt to use Python 2 that has
169    been removed from the platform.
171  * Git 2.43 started using the tree of HEAD as the source of attributes
172    in a bare repository, which has severe performance implications.
173    For now, revert the change, without ripping out a more explicit
174    support for the attr.tree configuration variable.
176  * The "--exit-code" option of "git diff" command learned to work with
177    the "--ext-diff" option.
178    (merge 11be65cfa4 rs/external-diff-with-exit-code later to maint).
180  * Windows CI running in GitHub Actions started complaining about the
181    order of arguments given to calloc(); the imported regex code uses
182    the wrong order almost consistently, which has been corrected.
184  * Expose "name conflict" error when a ref creation fails due to D/F
185    conflict in the ref namespace, to improve an error message given by
186    "git fetch".
187    (merge 9339fca23e it/refs-name-conflict later to maint).
189  * The SubmittingPatches document now refers folks to manpages
190    translation project.
192  * The documentation for "git diff --name-only" has been clarified
193    that it is about showing the names in the post-image tree.
194    (merge 4986662cbc jc/doc-diff-name-only later to maint).
196  * The credential helper that talks with osx keychain learned to avoid
197    storing back the authentication material it just got received from
198    the keychain.
199    (merge e1ab45b2da kn/osxkeychain-skip-idempotent-store later to maint).
201  * The chainlint script (invoked during "make test") did nothing when
202    it failed to detect the number of available CPUs.  It now falls
203    back to 1 CPU to avoid the problem.
204    (merge 2e7e9205be es/chainlint-ncores-fix later to maint).
206  * Revert overly aggressive "layered defence" that went into 2.45.1
207    and friends, which broke "git-lfs", "git-annex", and other use
208    cases, so that we can rebuild necessary counterparts in the open.
210  * "git init" in an already created directory, when the user
211    configuration has includeif.onbranch, started to fail recently,
212    which has been corrected.
213    (merge 407997c1dd ps/fix-reinit-includeif-onbranch later to maint).
215  * Memory leaks in "git mv" has been plugged.
217  * Other code cleanup, docfix, build fix, etc.
218    (merge a5a4cb7b27 rs/diff-parseopts-cleanup later to maint).
219    (merge 55702c543e fa/p4-error later to maint).
220    (merge 2566a77774 vd/doc-merge-tree-x-option later to maint).
221    (merge b64b0df9da ds/scalar-reconfigure-all-fix later to maint).
222    (merge c81ffcff83 dm/update-index-doc-fix later to maint).
223    (merge fc0202b0e9 dg/fetch-pack-code-cleanup later to maint).
224    (merge 7150f140f9 mt/t0211-typofix later to maint).
225    (merge d424488901 jc/rev-parse-fatal-doc later to maint).
226    (merge 36d900d2b0 rs/difftool-env-simplify later to maint).