Commit | Line | Data |
---|---|---|
6e0cc677 JH |
1 | Git 2.22 Release Notes |
2 | ====================== | |
3 | ||
4 | Updates since v2.21 | |
5 | ------------------- | |
6 | ||
7 | UI, Workflows & Features | |
8 | ||
9 | * "git checkout --no-overlay" can be used to trigger a new mode of | |
10 | checking out paths out of the tree-ish, that allows paths that | |
11 | match the pathspec that are in the current index and working tree | |
12 | and are not in the tree-ish. | |
13 | ||
14 | * The %(trailers) formatter in "git log --format=..." now allows to | |
15 | optionally pick trailers selectively by keyword, show only values, | |
16 | etc. | |
17 | ||
18 | * Four new configuration variables {author,committer}.{name,email} | |
19 | have been introduced to override user.{name,email} in more specific | |
20 | cases. | |
21 | ||
22 | * Command-line completion (in contrib/) learned to tab-complete the | |
23 | "git submodule absorbgitdirs" subcommand. | |
24 | ||
25 | * "git branch" learned a new subcommand "--show-current". | |
26 | ||
27 | * Output from "diff --cc" did not show the original paths when the | |
28 | merge involved renames. A new option adds the paths in the | |
29 | original trees to the output. | |
30 | ||
31 | * The command line completion (in contrib/) has been taught to | |
32 | complete more subcommand parameters. | |
33 | ||
041f5ea1 JH |
34 | * The final report from "git bisect" used to show the suspected |
35 | culprit using a raw "diff-tree", with which there is no output for | |
36 | a merge commit. This has been updated to use a more modern and | |
37 | human readable output that still is concise enough. | |
38 | ||
e35b8cb8 JH |
39 | * "git rebase --rebase-merges" replaces its old "--preserve-merges" |
40 | option; the latter is now marked as deprecated. | |
41 | ||
42 | * Error message given while cloning with --recurse-submodules has | |
43 | been updated. | |
44 | ||
ffac537e JH |
45 | * The completion helper code now pays attention to repository-local |
46 | configuration (when available), which allows --list-cmds to honour | |
47 | a repository specific setting of completion.commands, for example. | |
48 | ||
6e0cc677 JH |
49 | |
50 | Performance, Internal Implementation, Development Support etc. | |
51 | ||
52 | * The diff machinery, one of the oldest parts of the system, which | |
53 | long predates the parse-options API, uses fairly long and complex | |
54 | handcrafted option parser. This is being rewritten to use the | |
55 | parse-options API. | |
56 | ||
57 | * The implementation of pack-redundant has been updated for | |
58 | performance in a repository with many packfiles. | |
59 | ||
60 | * A more structured way to obtain execution trace has been added. | |
61 | ||
62 | * "git prune" has been taught to take advantage of reachability | |
63 | bitmap when able. | |
64 | ||
041f5ea1 JH |
65 | * The command line parser of "git commit-tree" has been rewritten to |
66 | use the parse-options API. | |
67 | ||
e35b8cb8 JH |
68 | * Suggest GitGitGadget instead of submitGit as a way to submit |
69 | patches based on GitHub PR to us. | |
70 | ||
ffac537e JH |
71 | * The test framework has been updated to help developers by making it |
72 | easier to run most of the tests under different versions of | |
73 | over-the-wire protocols. | |
74 | ||
75 | * Dev support update to make it easier to compare two formatted | |
76 | results from our documentation. | |
77 | ||
78 | * The scripted "git rebase" implementation has been retired. | |
79 | ||
80 | * "git multi-pack-index verify" did not scale well with the number of | |
81 | packfiles, which is being improved. | |
82 | ||
6e0cc677 JH |
83 | |
84 | Fixes since v2.21 | |
85 | ----------------- | |
86 | ||
87 | * "git prune-packed" did not notice and complain against excess | |
88 | arguments given from the command line, which now it does. | |
89 | (merge 9b0bd87ed2 rj/prune-packed-excess-args later to maint). | |
90 | ||
91 | * Split-index fix. | |
92 | (merge 6e37c8ed3c nd/split-index-null-base-fix later to maint). | |
93 | ||
94 | * "git diff --no-index" may still want to access Git goodies like | |
95 | --ext-diff and --textconv, but so far these have been ignored, | |
96 | which has been corrected. | |
97 | (merge 287ab28bfa jk/diff-no-index-initialize later to maint). | |
98 | ||
99 | * Unify RPC code for smart http in protocol v0/v1 and v2, which fixes | |
100 | a bug in the latter (lack of authentication retry) and generally | |
101 | improves the code base. | |
102 | (merge a97d00799a jt/http-auth-proto-v2-fix later to maint). | |
103 | ||
e902e9bc JH |
104 | * The include file compat/bswap.h has been updated so that it is safe |
105 | to (accidentally) include it more than once. | |
106 | (merge 33aa579a55 jk/guard-bswap-header later to maint). | |
107 | ||
108 | * The set of header files used by "make hdr-check" unconditionally | |
109 | included sha256/gcrypt.h, even when it is not used, causing the | |
110 | make target to fail. We now skip it when GCRYPT_SHA256 is not in | |
111 | use. | |
112 | (merge f23aa18e7f rj/hdr-check-gcrypt-fix later to maint). | |
113 | ||
114 | * The Makefile uses 'find' utility to enumerate all the *.h header | |
115 | files, which is expensive on platforms with slow filesystems; it | |
116 | now optionally uses "ls-files" if working within a repository, | |
117 | which is a trick similar to how all sources are enumerated to run | |
118 | ETAGS on. | |
119 | (merge 92b88eba9f js/find-lib-h-with-ls-files-when-possible later to maint). | |
120 | ||
041f5ea1 JH |
121 | * "git rebase" that was reimplemented in C did not set ORIG_HEAD |
122 | correctly, which has been corrected. | |
123 | (merge cbd29ead92 js/rebase-orig-head-fix later to maint). | |
124 | ||
125 | * Dev support. | |
126 | (merge f545737144 js/stress-test-ui-tweak later to maint). | |
127 | ||
128 | * CFLAGS now can be tweaked when invoking Make while using | |
129 | DEVELOPER=YesPlease; this did not work well before. | |
130 | (merge 6d5d4b4e93 ab/makefile-help-devs-more later to maint). | |
131 | ||
132 | * "git fsck --connectivity-only" omits computation necessary to sift | |
133 | the objects that are not reachable from any of the refs into | |
134 | unreachable and dangling. This is now enabled when dangling | |
135 | objects are requested (which is done by default, but can be | |
136 | overridden with the "--no-dangling" option). | |
137 | (merge 8d8c2a5aef jk/fsck-doc later to maint). | |
138 | ||
139 | * On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX), | |
140 | the upload-pack that runs on the other end that hangs up after | |
141 | detecting an error could cause "git fetch" to die with a signal, | |
142 | which led to a flakey test. "git fetch" now ignores SIGPIPE during | |
143 | the network portion of its operation (this is not a problem as we | |
144 | check the return status from our write(2)s). | |
145 | (merge 143588949c jk/no-sigpipe-during-network-transport later to maint). | |
146 | ||
147 | * A recent update broke "is this object available to us?" check for | |
148 | well-known objects like an empty tree (which should yield "yes", | |
149 | even when there is no on-disk object for an empty tree), which has | |
150 | been corrected. | |
151 | (merge f06ab027ef jk/virtual-objects-do-exist later to maint). | |
152 | ||
153 | * The setup code has been cleaned up to avoid leaks around the | |
154 | repository_format structure. | |
155 | (merge e8805af1c3 ma/clear-repository-format later to maint). | |
156 | ||
157 | * "git config --type=color ..." is meant to replace "git config --get-color" | |
158 | but there is a slight difference that wasn't documented, which is | |
159 | now fixed. | |
160 | (merge cd8e7593b9 jk/config-type-color-ends-with-lf later to maint). | |
161 | ||
e35b8cb8 JH |
162 | * When the "clean" filter can reduce the size of a huge file in the |
163 | working tree down to a small "token" (a la Git LFS), there is no | |
164 | point in allocating a huge scratch area upfront, but the buffer is | |
165 | sized based on the original file size. The convert mechanism now | |
166 | allocates very minimum and reallocates as it receives the output | |
167 | from the clean filter process. | |
168 | (merge 02156ab031 jh/resize-convert-scratch-buffer later to maint). | |
169 | ||
170 | * "git rebase" uses the refs/rewritten/ hierarchy to store its | |
171 | intermediate states, which inherently makes the hierarchy per | |
172 | worktree, but it didn't quite work well. | |
173 | (merge b9317d55a3 nd/rewritten-ref-is-per-worktree later to maint). | |
174 | ||
175 | * "git log -L<from>,<to>:<path>" with "-s" did not suppress the patch | |
176 | output as it should. This has been corrected. | |
177 | (merge 05314efaea jk/line-log-with-patch later to maint). | |
178 | ||
179 | * "git worktree add" used to do a "find an available name with stat | |
180 | and then mkdir", which is race-prone. This has been fixed by using | |
181 | mkdir and reacting to EEXIST in a loop. | |
182 | (merge 7af01f2367 ms/worktree-add-atomic-mkdir later to maint). | |
183 | ||
184 | * Build update for SHA-1 with collision detection. | |
185 | (merge 07a20f569b jk/sha1dc later to maint). | |
186 | ||
ffac537e JH |
187 | * Build procedure has been fixed around use of asciidoctor instead of |
188 | asciidoc. | |
189 | (merge 185f9a0ea0 ma/asciidoctor-fixes later to maint). | |
190 | ||
191 | * remote-http transport did not anonymize URLs reported in its error | |
192 | messages at places. | |
193 | (merge c1284b21f2 js/anonymize-remote-curl-diag later to maint). | |
194 | ||
195 | * Error messages given from the http transport have been updated so | |
196 | that they can be localized. | |
197 | (merge ed8b4132c8 js/remote-curl-i18n later to maint). | |
198 | ||
199 | * "git init" forgot to read platform-specific repository | |
200 | configuration, which made Windows port to ignore settings of | |
201 | core.hidedotfiles, for example. | |
202 | ||
203 | * A corner-case object name ambiguity while the sequencer machinery | |
204 | is working (e.g. "rebase -i -x") has been fixed. | |
205 | ||
206 | * "git format-patch" used overwrite an existing patch/cover-letter | |
207 | file. A new "--no-clobber" option stops it. | |
208 | (merge 2fe95f494c jc/format-patch-error-check later to maint). | |
209 | ||
210 | * "git checkout -f <branch>" while the index has an unmerged path | |
211 | incorrectly left some paths in an unmerged state, which has been | |
212 | corrected. | |
213 | ||
214 | * A corner case bug in the refs API has been corrected. | |
215 | (merge d3322eb28b jk/refs-double-abort later to maint). | |
216 | ||
217 | * Unicode update. | |
218 | (merge 584b62c37b bb/unicode-12 later to maint). | |
219 | ||
220 | * dumb-http walker has been updated to share more error recovery | |
221 | strategy with the normal codepath. | |
222 | ||
6e0cc677 JH |
223 | * Code cleanup, docfix, build fix, etc. |
224 | (merge 11f470aee7 jc/test-yes-doc later to maint). | |
225 | (merge 90503a240b js/doc-symref-in-proto-v1 later to maint). | |
226 | (merge 5c326d1252 jk/unused-params later to maint). | |
227 | (merge 68cabbfda3 dl/doc-submodule-wo-subcommand later to maint). | |
228 | (merge 9903623761 ab/receive-pack-use-after-free-fix later to maint). | |
229 | (merge 1ede45e44b en/merge-options-doc later to maint). | |
230 | (merge 3e14dd2c8e rd/doc-hook-used-in-sample later to maint). | |
231 | (merge c271dc28fd nd/no-more-check-racy later to maint). | |
e902e9bc JH |
232 | (merge e6e15194a8 yb/utf-16le-bom-spellfix later to maint). |
233 | (merge bb101aaf0c rd/attr.c-comment-typofix later to maint). | |
234 | (merge 716a5af812 rd/gc-prune-doc-fix later to maint). | |
235 | (merge 50b206371d js/untravis-windows later to maint). | |
236 | (merge dbf47215e3 js/rebase-recreate-merge later to maint). | |
e35b8cb8 JH |
237 | (merge 56cb2d30f8 dl/reset-doc-no-wrt-abbrev later to maint). |
238 | (merge 64eca306a2 ja/dir-rename-doc-markup-fix later to maint). | |
239 | (merge af91b0230c dl/ignore-docs later to maint). | |
240 | (merge 59a06e947b ra/t3600-test-path-funcs later to maint). | |
241 | (merge e041d0781b ar/t4150-remove-cruft later to maint). | |
ffac537e JH |
242 | (merge 8d75a1d183 ma/asciidoctor-fixes-more later to maint). |
243 | (merge 74cc547b0f mh/pack-protocol-doc-fix later to maint). | |
244 | (merge ed31851fa6 ab/doc-misc-typofixes later to maint). | |
245 | (merge a7256debd4 nd/checkout-m-doc-update later to maint). | |
246 | (merge 3a9e1ad78d jt/t5551-protocol-v2-does-not-have-half-auth later to maint). | |
247 | (merge 0b918b75af sg/t5318-cleanup later to maint). |