Welcome to mirror list, hosted at ThFree Co, Russian Federation.

2.44.0.txt « RelNotes « Documentation - git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2b9d2bd3c260be8e114fc751cf5215a2e7269a88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Git v2.44 Release Notes
=======================

Backward Compatibility Notes

 * "git chekcout -B <branch>" used to allow switching to a branch that
   is in use on another worktree, but this was by mistake.  The users
   need to use "--ignore-other-worktrees" option.


UI, Workflows & Features

 * "git add" and "git stash" learned to support the ":(attr:...)"
   magic pathspec.

 * "git rebase --autosquash" is now enabled for non-interactive rebase,
   but it is still incompatible with the apply backend.

 * Introduce "git replay", a tool meant on the server side without
   working tree to recreate a history.

 * "git merge-file" learned to take the "--diff-algorithm" option to
   use algorithm different from the default "myers" diff.

 * Command line completion (in contrib/) learned to complete path
   arguments to the "add/set" subcommands of "git sparse-checkout"
   better.

 * "git checkout -B <branch> [<start-point>]" allowed a branch that is
   in use in another worktree to be updated and checked out, which
   might be a bit unexpected.  The rule has been tightened, which is a
   breaking change.  "--ignore-other-worktrees" option is required to
   unbreak you, if you are used to the current behaviour that "-B"
   overrides the safety.

 * The builtin_objectmode attribute is populated for each path
   without adding anything in .gitattributes files, which would be
   useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)"
   to limit to executables.


Performance, Internal Implementation, Development Support etc.

 * Process to add some form of low-level unit tests has started.

 * Add support for GitLab CI.

 * "git for-each-ref --no-sort" still sorted the refs alphabetically
   which paid non-trivial cost.  It has been redefined to show output
   in an unspecified order, to allow certain optimizations to take
   advantage of.

 * Simplify API implementation to delete references by eliminating
   duplication.

 * Subject approxidate() and show_date() machinery to OSS-Fuzz.

 * A new helper to let us pretend that we called lstat() when we know
   our cache_entry is up-to-date via fsmonitor.

 * The optimization based on fsmonitor in the "diff --cached"
   codepath is resurrected with the "fake-lstat" introduced earlier.

 * Test balloon to use C99 "bool" type from <stdbool.h> has been
   added.

 * "git clone" has been prepared to allow cloning a repository with
   non-default hash function into a repository that uses the reftable
   backend.

 * Streaming spans of packfile data used to be done only from a
   single, primary, pack in a repository with multiple packfiles.  It
   has been extended to allow reuse from other packfiles, too.


Fixes since v2.43
-----------------

 * The way CI testing used "prove" could lead to running the test
   suite twice needlessly, which has been corrected.
   (merge e7e03ef995 js/ci-discard-prove-state later to maint).

 * Update ref-related tests.

 * "git format-patch --encode-email-headers" ignored the option when
   preparing the cover letter, which has been corrected.

 * Newer versions of Getopt::Long started giving warnings against our
   (ab)use of it in "git send-email".  Bump the minimum version
   requirement for Perl to 5.8.1 (from September 2002) to allow
   simplifying our implementation.
   (merge 6ff658cc78 tz/send-email-negatable-options later to maint).

 * Earlier we stopped relying on commit-graph that (still) records
   information about commits that are lost from the object store,
   which has negative performance implications.  The default has been
   flipped to disable this pessimization.
   (merge b1df3b3867 ps/commit-graph-less-paranoid later to maint).

 * Stale URLs have been updated to their current counterparts (or
   archive.org) and HTTP links are replaced with working HTTPS links.
   (merge 62b4f7b9c6 js/update-urls-in-doc-and-comment later to maint).

 * trace2 streams used to record the URLs that potentially embed
   authentication material, which has been corrected.
   (merge 16fa3eebc0 jh/trace2-redact-auth later to maint).

 * The sample pre-commit hook that tries to catch introduction of new
   paths that use potentially non-portable characters did not notice
   an existing path getting renamed to such a problematic path, when
   rename detection was enabled.
   (merge d9fd71fa2a jp/use-diff-index-in-pre-commit-sample later to maint).

 * The command line parser for the "log" family of commands was too
   loose when parsing certain numbers, e.g., silently ignoring the
   extra 'q' in "git log -n 1q" without complaining, which has been
   tightened up.
   (merge 71a1e94821 jc/revision-parse-int later to maint).

 * "git $cmd --end-of-options --rev -- --path" for some $cmd failed
   to interpret "--rev" as a rev, and "--path" as a path.  This was
   fixed for many programs like "reset" and "checkout".
   (merge 9385174627 jk/end-of-options later to maint).

 * "git bisect reset" has been taught to clean up state files and refs
   even when BISECT_START file is gone.
   (merge daaa03e54c jk/bisect-reset-fix later to maint).

 * Some codepaths did not correctly parse configuration variables
   specified with valueless "true", which has been corrected.
   (merge d49cb162fa jk/implicit-true later to maint).

 * Code clean-up for sanity checking of command line options for "git
   show-ref".
   (merge 7382497372 rs/show-ref-incompatible-options later to maint).

 * The code to parse the From e-mail header has been updated to avoid
   recursion.
   (merge dee182941f jk/mailinfo-iterative-unquote-comment later to maint).

 * "git fetch --atomic" issued an unnecessary empty error message,
   which has been corrected.
   (merge 18ce48918c jx/fetch-atomic-error-message-fix later to maint).

 * Command line completion script (in contrib/) learned to work better
   with the reftable backend.
   (merge 44dbb3bf29 sh/completion-with-reftable later to maint).

 * "git status" is taught to show both the branch being bisected and
   being rebased when both are in effect at the same time.
   (merge 990adccbdf rj/status-bisect-while-rebase later to maint).

 * "git archive --list extra garbage" silently ignored excess command
   line parameters, which has been corrected.
   (merge d6b6cd1393 jc/archive-list-with-extra-args later to maint).

 * "git sparse-checkout set" added default patterns even when the
   patterns are being fed from the standard input, which has been
   corrected.
   (merge 53ded839ae jc/sparse-checkout-set-default-fix later to maint).

 * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did
   not handle "--end-of-options" correctly after a recent update.

 * Unlike other environment variables that took the usual
   true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1,
   which has been corrected.
   (merge 556e68032f cp/git-flush-is-an-env-bool later to maint).

 * Clearing in-core repository (happens during e.g., "git fetch
   --recurse-submodules" with commit graph enabled) made in-core
   commit object in an inconsistent state by discarding the necessary
   data from commit-graph too early, which has been corrected.
   (merge d70f554cdf jk/commit-graph-slab-clear-fix later to maint).

 * Other code cleanup, docfix, build fix, etc.
   (merge 50f1abcff6 js/packfile-h-typofix later to maint).
   (merge cbf498eb53 jb/reflog-expire-delete-dry-run-options later to maint).
   (merge 7854bf4960 rs/i18n-cannot-be-used-together later to maint).
   (merge cd3c28c53a rs/column-leakfix later to maint).
   (merge 866a1b9026 ps/ref-tests-update-more later to maint).
   (merge e4299d26d4 mk/doc-gitfile-more later to maint).
   (merge 792b86283b rs/incompatible-options-messages later to maint).
   (merge ea8f9494ab jk/config-cleanup later to maint).
   (merge d1bd3a8c34 jk/mailinfo-oob-read-fix later to maint).
   (merge c0cadb0576 ps/reftable-fixes later to maint).
   (merge 647b5e0998 ps/chainlint-self-check-update later to maint).
   (merge 68fcebfb1a es/add-doc-list-short-form-of-all-in-synopsis later to maint).
   (merge bc62d27d5c jc/doc-most-refs-are-not-that-special later to maint).
   (merge 6d6f1cd7ee jc/doc-misspelt-refs-fix later to maint).
   (merge 37e8d795be sp/test-i18ngrep later to maint).
   (merge fbc6526ea6 rs/t6300-compressed-size-fix later to maint).
   (merge 45184afb4d rs/rebase-use-strvec-pushf later to maint).
   (merge a762af3dfd jc/retire-cas-opt-name-constant later to maint).
   (merge de7c27a186 la/trailer-cleanups later to maint).
   (merge d44b517137 jc/orphan-unborn later to maint).
   (merge 63956c553d ml/doc-merge-updates later to maint).
   (merge d57c671a51 en/header-cleanup later to maint).
   (merge 5b7eec4bc5 rs/fast-import-simplify-mempool-allocation later to maint).
   (merge 291873e5d6 js/contributor-docs-updates later to maint).
   (merge 54d8a2531b jk/t1006-cat-file-objectsize-disk later to maint).
   (merge 7033d5479b jx/sideband-chomp-newline-fix later to maint).
   (merge 9cd30af991 ms/rebase-insnformat-doc-fix later to maint).
   (merge 03bcc93769 cp/sideband-array-index-comment-fix later to maint).
   (merge 993d38a066 jk/index-pack-lsan-false-positive-fix later to maint).
   (merge 25aec06326 ib/rebase-reschedule-doc later to maint).