]>
Commit | Line | Data |
---|---|---|
1a87c842 JH |
1 | Git v2.44 Release Notes |
2 | ======================= | |
3 | ||
e79552d1 JH |
4 | Backward Compatibility Notes |
5 | ||
6 | * "git chekcout -B <branch>" used to allow switching to a branch that | |
7 | is in use on another worktree, but this was by mistake. The users | |
8 | need to use "--ignore-other-worktrees" option. | |
9 | ||
10 | ||
1a87c842 JH |
11 | UI, Workflows & Features |
12 | ||
13 | * "git add" and "git stash" learned to support the ":(attr:...)" | |
14 | magic pathspec. | |
15 | ||
16 | * "git rebase --autosquash" is now enabled for non-interactive rebase, | |
17 | but it is still incompatible with the apply backend. | |
18 | ||
624eb90f JH |
19 | * Introduce "git replay", a tool meant on the server side without |
20 | working tree to recreate a history. | |
21 | ||
22 | * "git merge-file" learned to take the "--diff-algorithm" option to | |
23 | use algorithm different from the default "myers" diff. | |
24 | ||
055bb6e9 JH |
25 | * Command line completion (in contrib/) learned to complete path |
26 | arguments to the "add/set" subcommands of "git sparse-checkout" | |
27 | better. | |
28 | ||
e79552d1 JH |
29 | * "git checkout -B <branch> [<start-point>]" allowed a branch that is |
30 | in use in another worktree to be updated and checked out, which | |
31 | might be a bit unexpected. The rule has been tightened, which is a | |
32 | breaking change. "--ignore-other-worktrees" option is required to | |
33 | unbreak you, if you are used to the current behaviour that "-B" | |
34 | overrides the safety. | |
d4dbce1d JH |
35 | |
36 | * The builtin_objectmode attribute is populated for each path | |
37 | without adding anything in .gitattributes files, which would be | |
38 | useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)" | |
39 | to limit to executables. | |
e79552d1 | 40 | |
e02ecfcc JH |
41 | * "git fetch" learned to pay attention to "fetch.all" configuration |
42 | variable, which pretends as if "--all" was passed from the command | |
43 | line when no remote parameter was given. | |
44 | ||
45 | * In addition to (rather cryptic) Security Identifiers, show username | |
46 | and domain in the error message when we barf on mismatch between | |
47 | the Git directory and the current user on Windows. | |
48 | ||
b50a608b JH |
49 | * The error message given when "git branch -d branch" fails due to |
50 | commits unique to the branch has been split into an error and a new | |
51 | conditional advice message. | |
52 | ||
53 | * When given an existing but unreadable file as a configuration file, | |
54 | gitweb behaved as if the file did not exist at all, but now it | |
55 | errors out. This is a change that may break backward compatibility. | |
56 | ||
57 | * When $HOME/.gitignore is missing but XDG config file available, we | |
58 | should write into the latter, not former. "git gc" and "git | |
59 | maintenance" wrote into a wrong "global config" file, which have | |
60 | been corrected. | |
61 | ||
1a87c842 JH |
62 | |
63 | Performance, Internal Implementation, Development Support etc. | |
64 | ||
65 | * Process to add some form of low-level unit tests has started. | |
66 | ||
67 | * Add support for GitLab CI. | |
68 | ||
69 | * "git for-each-ref --no-sort" still sorted the refs alphabetically | |
70 | which paid non-trivial cost. It has been redefined to show output | |
71 | in an unspecified order, to allow certain optimizations to take | |
72 | advantage of. | |
73 | ||
624eb90f JH |
74 | * Simplify API implementation to delete references by eliminating |
75 | duplication. | |
76 | ||
77 | * Subject approxidate() and show_date() machinery to OSS-Fuzz. | |
78 | ||
e79552d1 JH |
79 | * A new helper to let us pretend that we called lstat() when we know |
80 | our cache_entry is up-to-date via fsmonitor. | |
81 | ||
82 | * The optimization based on fsmonitor in the "diff --cached" | |
83 | codepath is resurrected with the "fake-lstat" introduced earlier. | |
84 | ||
85 | * Test balloon to use C99 "bool" type from <stdbool.h> has been | |
86 | added. | |
87 | ||
88 | * "git clone" has been prepared to allow cloning a repository with | |
89 | non-default hash function into a repository that uses the reftable | |
90 | backend. | |
91 | ||
d4dbce1d JH |
92 | * Streaming spans of packfile data used to be done only from a |
93 | single, primary, pack in a repository with multiple packfiles. It | |
94 | has been extended to allow reuse from other packfiles, too. | |
95 | ||
b50a608b JH |
96 | * Comment updates to help developers not to attempt to modify |
97 | messages from plumbing commands that must stay constant. | |
98 | ||
99 | It might make sense to reassess the plumbing needs every few years, | |
100 | but that should be done as a separate effort. | |
101 | ||
102 | * Move test-ctype helper to the unit-test framework. | |
103 | ||
104 | * Instead of manually creating refs/ hierarchy on disk upon a | |
105 | creation of a secondary worktree, which is only usable via the | |
106 | files backend, use the refs API to populate it. | |
107 | ||
108 | * CI for GitLab learned to drive macOS jobs. | |
109 | ||
110 | * A few tests to "git commit -o <pathspec>" and "git commit -i | |
111 | <pathspec>" has been added. | |
112 | ||
1a87c842 JH |
113 | |
114 | Fixes since v2.43 | |
115 | ----------------- | |
116 | ||
117 | * The way CI testing used "prove" could lead to running the test | |
118 | suite twice needlessly, which has been corrected. | |
119 | (merge e7e03ef995 js/ci-discard-prove-state later to maint). | |
120 | ||
121 | * Update ref-related tests. | |
122 | ||
123 | * "git format-patch --encode-email-headers" ignored the option when | |
124 | preparing the cover letter, which has been corrected. | |
125 | ||
126 | * Newer versions of Getopt::Long started giving warnings against our | |
127 | (ab)use of it in "git send-email". Bump the minimum version | |
128 | requirement for Perl to 5.8.1 (from September 2002) to allow | |
129 | simplifying our implementation. | |
130 | (merge 6ff658cc78 tz/send-email-negatable-options later to maint). | |
131 | ||
624eb90f JH |
132 | * Earlier we stopped relying on commit-graph that (still) records |
133 | information about commits that are lost from the object store, | |
134 | which has negative performance implications. The default has been | |
135 | flipped to disable this pessimization. | |
136 | (merge b1df3b3867 ps/commit-graph-less-paranoid later to maint). | |
137 | ||
138 | * Stale URLs have been updated to their current counterparts (or | |
139 | archive.org) and HTTP links are replaced with working HTTPS links. | |
140 | (merge 62b4f7b9c6 js/update-urls-in-doc-and-comment later to maint). | |
141 | ||
142 | * trace2 streams used to record the URLs that potentially embed | |
143 | authentication material, which has been corrected. | |
144 | (merge 16fa3eebc0 jh/trace2-redact-auth later to maint). | |
145 | ||
055bb6e9 JH |
146 | * The sample pre-commit hook that tries to catch introduction of new |
147 | paths that use potentially non-portable characters did not notice | |
148 | an existing path getting renamed to such a problematic path, when | |
149 | rename detection was enabled. | |
150 | (merge d9fd71fa2a jp/use-diff-index-in-pre-commit-sample later to maint). | |
151 | ||
152 | * The command line parser for the "log" family of commands was too | |
153 | loose when parsing certain numbers, e.g., silently ignoring the | |
154 | extra 'q' in "git log -n 1q" without complaining, which has been | |
155 | tightened up. | |
156 | (merge 71a1e94821 jc/revision-parse-int later to maint). | |
157 | ||
158 | * "git $cmd --end-of-options --rev -- --path" for some $cmd failed | |
159 | to interpret "--rev" as a rev, and "--path" as a path. This was | |
160 | fixed for many programs like "reset" and "checkout". | |
161 | (merge 9385174627 jk/end-of-options later to maint). | |
162 | ||
163 | * "git bisect reset" has been taught to clean up state files and refs | |
164 | even when BISECT_START file is gone. | |
165 | (merge daaa03e54c jk/bisect-reset-fix later to maint). | |
166 | ||
167 | * Some codepaths did not correctly parse configuration variables | |
168 | specified with valueless "true", which has been corrected. | |
169 | (merge d49cb162fa jk/implicit-true later to maint). | |
170 | ||
e79552d1 JH |
171 | * Code clean-up for sanity checking of command line options for "git |
172 | show-ref". | |
173 | (merge 7382497372 rs/show-ref-incompatible-options later to maint). | |
174 | ||
175 | * The code to parse the From e-mail header has been updated to avoid | |
176 | recursion. | |
177 | (merge dee182941f jk/mailinfo-iterative-unquote-comment later to maint). | |
178 | ||
179 | * "git fetch --atomic" issued an unnecessary empty error message, | |
180 | which has been corrected. | |
181 | (merge 18ce48918c jx/fetch-atomic-error-message-fix later to maint). | |
182 | ||
a26002b6 JH |
183 | * Command line completion script (in contrib/) learned to work better |
184 | with the reftable backend. | |
185 | (merge 44dbb3bf29 sh/completion-with-reftable later to maint). | |
186 | ||
187 | * "git status" is taught to show both the branch being bisected and | |
188 | being rebased when both are in effect at the same time. | |
189 | (merge 990adccbdf rj/status-bisect-while-rebase later to maint). | |
190 | ||
a54a84b3 JH |
191 | * "git archive --list extra garbage" silently ignored excess command |
192 | line parameters, which has been corrected. | |
193 | (merge d6b6cd1393 jc/archive-list-with-extra-args later to maint). | |
194 | ||
195 | * "git sparse-checkout set" added default patterns even when the | |
196 | patterns are being fed from the standard input, which has been | |
197 | corrected. | |
198 | (merge 53ded839ae jc/sparse-checkout-set-default-fix later to maint). | |
199 | ||
200 | * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did | |
201 | not handle "--end-of-options" correctly after a recent update. | |
202 | ||
d4dbce1d JH |
203 | * Unlike other environment variables that took the usual |
204 | true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, | |
205 | which has been corrected. | |
206 | (merge 556e68032f cp/git-flush-is-an-env-bool later to maint). | |
207 | ||
186b115d JH |
208 | * Clearing in-core repository (happens during e.g., "git fetch |
209 | --recurse-submodules" with commit graph enabled) made in-core | |
210 | commit object in an inconsistent state by discarding the necessary | |
211 | data from commit-graph too early, which has been corrected. | |
212 | (merge d70f554cdf jk/commit-graph-slab-clear-fix later to maint). | |
213 | ||
1a87c842 | 214 | * Other code cleanup, docfix, build fix, etc. |
624eb90f JH |
215 | (merge 50f1abcff6 js/packfile-h-typofix later to maint). |
216 | (merge cbf498eb53 jb/reflog-expire-delete-dry-run-options later to maint). | |
217 | (merge 7854bf4960 rs/i18n-cannot-be-used-together later to maint). | |
218 | (merge cd3c28c53a rs/column-leakfix later to maint). | |
055bb6e9 JH |
219 | (merge 866a1b9026 ps/ref-tests-update-more later to maint). |
220 | (merge e4299d26d4 mk/doc-gitfile-more later to maint). | |
221 | (merge 792b86283b rs/incompatible-options-messages later to maint). | |
222 | (merge ea8f9494ab jk/config-cleanup later to maint). | |
e79552d1 JH |
223 | (merge d1bd3a8c34 jk/mailinfo-oob-read-fix later to maint). |
224 | (merge c0cadb0576 ps/reftable-fixes later to maint). | |
225 | (merge 647b5e0998 ps/chainlint-self-check-update later to maint). | |
226 | (merge 68fcebfb1a es/add-doc-list-short-form-of-all-in-synopsis later to maint). | |
227 | (merge bc62d27d5c jc/doc-most-refs-are-not-that-special later to maint). | |
228 | (merge 6d6f1cd7ee jc/doc-misspelt-refs-fix later to maint). | |
229 | (merge 37e8d795be sp/test-i18ngrep later to maint). | |
230 | (merge fbc6526ea6 rs/t6300-compressed-size-fix later to maint). | |
a26002b6 JH |
231 | (merge 45184afb4d rs/rebase-use-strvec-pushf later to maint). |
232 | (merge a762af3dfd jc/retire-cas-opt-name-constant later to maint). | |
233 | (merge de7c27a186 la/trailer-cleanups later to maint). | |
234 | (merge d44b517137 jc/orphan-unborn later to maint). | |
a54a84b3 JH |
235 | (merge 63956c553d ml/doc-merge-updates later to maint). |
236 | (merge d57c671a51 en/header-cleanup later to maint). | |
237 | (merge 5b7eec4bc5 rs/fast-import-simplify-mempool-allocation later to maint). | |
d4dbce1d JH |
238 | (merge 291873e5d6 js/contributor-docs-updates later to maint). |
239 | (merge 54d8a2531b jk/t1006-cat-file-objectsize-disk later to maint). | |
240 | (merge 7033d5479b jx/sideband-chomp-newline-fix later to maint). | |
241 | (merge 9cd30af991 ms/rebase-insnformat-doc-fix later to maint). | |
186b115d JH |
242 | (merge 03bcc93769 cp/sideband-array-index-comment-fix later to maint). |
243 | (merge 993d38a066 jk/index-pack-lsan-false-positive-fix later to maint). | |
244 | (merge 25aec06326 ib/rebase-reschedule-doc later to maint). | |
e02ecfcc JH |
245 | (merge 5aea3955bc rj/clarify-branch-doc-m later to maint). |
246 | (merge 9cce3be2df bk/bisect-doc-fix later to maint). | |
b50a608b JH |
247 | (merge 8f50984cf4 ne/doc-filter-blob-limit-fix later to maint). |
248 | (merge f10b0989b8 la/strvec-comment-fix later to maint). | |
249 | (merge 8430b438f6 vd/fsck-submodule-url-test later to maint). |