]>
Commit | Line | Data |
---|---|---|
d7d8841f JH |
1 | Git v2.42 Release Notes |
2 | ======================= | |
3 | ||
4 | UI, Workflows & Features | |
5 | ||
6 | * "git pack-refs" learns "--include" and "--exclude" to tweak the ref | |
7 | hierarchy to be packed using pattern matching. | |
8 | ||
0bfa463d JH |
9 | * 'git worktree add' learned how to create a worktree based on an |
10 | orphaned branch with `--orphan`. | |
11 | ||
6ff33418 JH |
12 | * "git pack-objects" learned to invoke a new hook program that |
13 | enumerates extra objects to be used as anchoring points to keep | |
14 | otherwise unreachable objects in cruft packs. | |
15 | ||
a646b86c JH |
16 | * Add more "git var" for toolsmiths to learn various locations Git is |
17 | configured with either via the configuration or hardcoded defaults. | |
18 | ||
061c5864 JH |
19 | * 'git notes append' was taught '--separator' to specify string to insert |
20 | between paragraphs. | |
21 | ||
830b4a04 JH |
22 | * The "git for-each-ref" family of commands learned placeholders |
23 | related to GPG signature verification. | |
24 | ||
5e238546 JH |
25 | * "git diff --no-index" learned to read from named pipes as if they |
26 | were regular files, to allow "git diff <(process) <(substitution)" | |
27 | some shells support. | |
28 | ||
a80be152 JH |
29 | * Help newbies by suggesting that there are cases where force-pushing |
30 | is a valid and sensible thing to update a branch at a remote | |
31 | repository, rather than reconciling with merge/rebase. | |
32 | ||
d7d8841f JH |
33 | |
34 | Performance, Internal Implementation, Development Support etc. | |
35 | ||
36 | * "git diff-tree" has been taught to take advantage of the | |
37 | sparse-index feature. | |
38 | ||
6640c2d0 JH |
39 | * Clang's sanitizer implementation seems to work better than GCC's. |
40 | (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). | |
41 | ||
0bfa463d JH |
42 | * The object traversal using reachability bitmap done by |
43 | "pack-object" has been tweaked to take advantage of the fact that | |
44 | using "boundary" commits as representative of all the uninteresting | |
45 | ones can save quite a lot of object enumeration. | |
46 | ||
6ff33418 JH |
47 | * discover_git_directory() no longer touches the_repository. |
48 | ||
49 | * "git worktree" learned to work better with sparse index feature. | |
50 | ||
9748a682 JH |
51 | * When the external merge driver is killed by a signal, its output |
52 | should not be trusted as a resolution with conflicts that is | |
53 | proposed by the driver, but the code did. | |
54 | ||
a646b86c JH |
55 | * The set-up code for the get_revision() API now allows feeding |
56 | options like --all and --not in the --stdin mode. | |
57 | ||
061c5864 JH |
58 | * Move functions that are not about pure string manipulation out of |
59 | strbuf.[ch] | |
60 | ||
830b4a04 JH |
61 | * "imap-send" codepaths got cleaned up to get rid of unused |
62 | parameters. | |
63 | ||
e43f4fd0 JH |
64 | * Enumerating refs in the packed-refs file, while excluding refs that |
65 | match certain patterns, has been optimized. | |
66 | ||
a80be152 JH |
67 | * Mark-up unused parameters in the code so that we can eventually |
68 | enable -Wunused-parameter by default. | |
69 | ||
d7d8841f JH |
70 | |
71 | Fixes since v2.41 | |
72 | ----------------- | |
73 | ||
74 | * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the | |
75 | command failed, so that the user can salvage what they typed. | |
76 | (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). | |
77 | ||
78 | * The "-s" (silent, squelch) option of the "diff" family of commands | |
79 | did not interact with other options that specify the output format | |
80 | well. This has been cleaned up so that it will clear all the | |
81 | formatting options given before. | |
82 | (merge 9d484b92ed jc/diff-s-with-other-options later to maint). | |
83 | ||
84 | * Update documentation regarding Coccinelle patches. | |
85 | (merge 3bd0097cfc gc/doc-cocci-updates later to maint). | |
86 | ||
87 | * Some atoms that can be used in "--format=<format>" for "git ls-tree" | |
88 | were not supported by "git ls-files", even though they were relevant | |
89 | in the context of the latter. | |
90 | (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). | |
91 | ||
6640c2d0 JH |
92 | * Document more pseudo-refs and teach the command line completion |
93 | machinery to complete AUTO_MERGE. | |
94 | (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). | |
95 | ||
96 | * "git submodule" code trusted the data coming from the config (and | |
97 | the in-tree .gitmodules file) too much without validating, leading | |
98 | to NULL dereference if the user mucks with a repository (e.g. | |
99 | submodule.<name>.url is removed). This has been corrected. | |
100 | (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). | |
101 | ||
102 | * The value of config.worktree is per-repository, but has been kept | |
103 | in a singleton global variable per process. This has been OK as | |
104 | most Git operations interacted with a single repository at a time, | |
105 | but not right for operations like recursive "grep" that want to | |
106 | access multiple repositories from a single process without forking. | |
107 | ||
108 | The global variable has been eliminated and made into a member in | |
109 | the per-repository data structure. | |
110 | (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). | |
111 | ||
112 | * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. | |
113 | (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). | |
114 | ||
0bfa463d JH |
115 | * Introduce a mechanism to disable replace refs globally and per |
116 | repository. | |
117 | (merge 9c7d1b057f ds/disable-replace-refs later to maint). | |
118 | ||
119 | * "git cat-file --batch" and friends learned "-Z" that uses NUL | |
120 | delimiter for both input and output. | |
121 | (merge f79e18849b ps/cat-file-null-output later to maint). | |
122 | ||
123 | * The reimplemented "git add -i" did not honor color.ui configuration. | |
124 | (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). | |
125 | ||
126 | * Compilation fix for platforms without D_TYPE in struct dirent. | |
127 | (merge 03bf92b9bf as/dtype-compilation-fix later to maint). | |
128 | ||
129 | * Suggest to refrain from using hex literals that are non-portable | |
130 | when writing printf(1) format strings. | |
131 | (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). | |
132 | ||
6ff33418 JH |
133 | * Simplify error message when run-command fails to start a command. |
134 | (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). | |
135 | ||
136 | * Gracefully deal with a stale MIDX file that lists a packfile that | |
137 | no longer exists. | |
138 | (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). | |
139 | ||
140 | * Even when diff.ignoreSubmodules tells us to ignore submodule | |
141 | changes, "git commit" with an index that already records changes to | |
142 | submodules should include the submodule changes in the resulting | |
143 | commit, but it did not. | |
144 | (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). | |
145 | ||
a9e066fa JH |
146 | * When "git commit --trailer=..." invokes the interpret-trailers |
147 | machinery, it knows what it feeds to interpret-trailers is a full | |
148 | log message without any patch, but failed to express that by | |
149 | passing the "--no-divider" option, which has been corrected. | |
150 | (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). | |
151 | ||
152 | * Avoid breakage of "git pack-objects --cruft" due to inconsistency | |
153 | between the way the code enumerates packfiles in the repository. | |
154 | (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). | |
155 | ||
9748a682 JH |
156 | * We create .pack and then .idx, we consider only packfiles that have |
157 | .idx usable (those with only .pack are not ready yet), so we should | |
158 | remove .idx before removing .pack for consistency. | |
159 | (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). | |
160 | ||
061c5864 JH |
161 | * Partially revert a sanity check that the rest of the config code |
162 | was not ready, to avoid triggering it in a corner case. | |
163 | (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). | |
164 | ||
165 | * "git apply" punts when it is fed too large a patch input; the error | |
166 | message it gives when it happens has been clarified. | |
167 | (merge 42612e18d2 pw/apply-too-large later to maint). | |
168 | ||
169 | * During a cherry-pick or revert session that works on multiple | |
170 | commits, "git status" did not give correct information, which has | |
171 | been corrected. | |
172 | (merge a096a889f4 jk/cherry-pick-revert-status later to maint). | |
173 | ||
aa9166bc JH |
174 | * A few places failed to differenciate the case where the index is |
175 | truly empty (nothing added) and we haven't yet read from the | |
176 | on-disk index file, which have been corrected. | |
177 | (merge 2ee045eea1 js/empty-index-fixes later to maint). | |
178 | ||
830b4a04 JH |
179 | * "git bugreport" tests did not test what it wanted to test, which |
180 | has been corrected. | |
181 | (merge 1aa92b8500 ma/t0091-fixup later to maint). | |
182 | ||
5e238546 JH |
183 | * Code snippets in a tutorial document no longer compiled after |
184 | recent header shuffling, which have been corrected. | |
185 | (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). | |
186 | ||
187 | * "git ls-files '(attr:X)D/'" that triggers the common prefix | |
188 | optimization codepath failed to read from "D/.gitattributes", | |
189 | which has been corrected. | |
190 | (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). | |
191 | ||
cba07a32 JH |
192 | * "git fsck --no-progress" still spewed noise from the commit-graph |
193 | subsystem, which has been corrected. | |
194 | (merge 9281cd07f0 tb/fsck-no-progress later to maint). | |
195 | ||
a80be152 JH |
196 | * Various offset computation in the code that accesses the packfiles |
197 | and other data in the object layer has been hardened against | |
198 | arithmetic overflow, especially on 32-bit systems. | |
199 | (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). | |
200 | ||
201 | * Names of MinGW header files are spelled in mixed case in some | |
202 | source files, but the build host can be using case sensitive | |
203 | filesystem with header files with their name spelled in all | |
204 | lowercase. | |
205 | (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). | |
206 | ||
207 | * Update message mark-up for i18n in "git bundle". | |
208 | (merge bbb6acd998 dk/bundle-i18n-more later to maint). | |
209 | ||
210 | * "git tag --list --points-at X" showed tags that directly refers to | |
211 | object X, but did not list a tag that points at such a tag, which | |
212 | has been corrected. | |
213 | ||
d7d8841f JH |
214 | * Other code cleanup, docfix, build fix, etc. |
215 | (merge 51f9d2e563 sa/doc-ls-remote later to maint). | |
216 | (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). | |
6640c2d0 JH |
217 | (merge f7e063f326 ps/fetch-cleanups later to maint). |
218 | (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). | |
219 | (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). | |
220 | (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). | |
221 | (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). | |
222 | (merge aeee1408ce kh/use-default-notes-doc later to maint). | |
223 | (merge 3b8724bce6 jc/test-modernization later to maint). | |
224 | (merge 447a3b7331 jc/test-modernization-2 later to maint). | |
225 | (merge d57fa7fc73 la/doc-interpret-trailers later to maint). | |
0bfa463d JH |
226 | (merge 548afb0d9a la/docs-typofixes later to maint). |
227 | (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). | |
6ff33418 JH |
228 | (merge 6c26da8404 mh/credential-erase-improvements later to maint). |
229 | (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). | |
230 | (merge 80d32e84b5 rj/leakfixes later to maint). | |
061c5864 JH |
231 | (merge 0a868031ed pb/complete-diff-options later to maint). |
232 | (merge d4f28279ad jc/doc-hash-object-types later to maint). | |
aa9166bc JH |
233 | (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). |
234 | (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). | |
5e238546 | 235 | (merge 3e81b896f7 rs/packet-length-simplify later to maint). |
cba07a32 | 236 | (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). |