@@ -4,18 +4,26 @@ Git 2.21 Release Notes
4
4
Backward Compatibility Notes
5
5
----------------------------
6
6
7
+ * Historically, the "-m" (mainline) option can only be used for "git
8
+ cherry-pick" and "git revert" when working with a merge commit.
9
+ This version of Git no longer warns or errors out when working with
10
+ a single-parent commit, as long as the argument to the "-m" option
11
+ is 1 (i.e. it has only one parent, and the request is to pick or
12
+ revert relative to that first parent). Scripts that relied on the
13
+ behaviour may get broken with this change.
14
+
7
15
8
16
Updates since v2.20
9
17
-------------------
10
18
11
19
UI, Workflows & Features
12
20
13
21
* The "http.version" configuration variable can be used with recent
14
- enough cURL library to force the version of HTTP used to talk when
15
- fetching and pushing.
22
+ enough versions of cURL library to force the version of HTTP used
23
+ to talk when fetching and pushing.
16
24
17
25
* Small fixes and features for fast-export and fast-import, mostly on
18
- the fast-export side.
26
+ the fast-export side has been made .
19
27
20
28
* "git push $there $src:$dst" rejects when $dst is not a fully
21
29
qualified refname and not clear what the end user meant. The
@@ -62,13 +70,23 @@ UI, Workflows & Features
62
70
* "git instaweb" learned to drive http.server that comes with
63
71
"batteries included" Python installation (both Python2 & 3).
64
72
73
+ * A new encoding UTF-16LE-BOM has been invented to force encoding to
74
+ UTF-16 with BOM in little endian byte order, which cannot be directly
75
+ generated by using iconv.
76
+
77
+ * A new date format "--date=human" that morphs its output depending
78
+ on how far the time is from the current time has been introduced.
79
+ "--date=auto" can be used to use this new format when the output is
80
+ going to the pager or to the terminal and otherwise the default
81
+ format.
82
+
65
83
66
84
Performance, Internal Implementation, Development Support etc.
67
85
68
86
* Code clean-up with optimization for the codepath that checks
69
87
(non-)existence of loose objects.
70
88
71
- * More codepaths become aware of working with in-core repository
89
+ * More codepaths have become aware of working with in-core repository
72
90
instance other than the default "the_repository".
73
91
74
92
* The "strncat()" function is now among the banned functions.
@@ -86,7 +104,6 @@ Performance, Internal Implementation, Development Support etc.
86
104
87
105
* Flaky tests can now be repeatedly run under load with the
88
106
"--stress" option.
89
- (merge fb7d1e3ac8 sg/stress-test later to maint).
90
107
91
108
* Documentation/Makefile is getting prepared for manpage
92
109
localization.
@@ -124,6 +141,39 @@ Performance, Internal Implementation, Development Support etc.
124
141
125
142
* Cocci rules have been updated to encourage use of strbuf_addbuf().
126
143
144
+ * "git rebase --merge" has been reimplemented by reusing the internal
145
+ machinery used for "git rebase -i".
146
+
147
+ * More code in "git bisect" has been rewritten in C.
148
+
149
+ * Instead of going through "git-rebase--am" scriptlet to use the "am"
150
+ backend, the built-in version of "git rebase" learned to drive the
151
+ "am" backend directly.
152
+
153
+ * The assumption to work on the single "in-core index" instance has
154
+ been reduced from the library-ish part of the codebase.
155
+
156
+ * The test lint learned to catch non-portable "sed" options.
157
+
158
+ * "git pack-objects" learned another algorithm to compute the set of
159
+ objects to send, that trades the resulting packfile off to save
160
+ traversal cost to favor small pushes.
161
+
162
+ * The travis CI scripts have been corrected to build Git with the
163
+ compiler(s) of our choice.
164
+
165
+ * "git submodule update" learned to abort early when core.worktree
166
+ for the submodule is not set correctly to prevent spreading damage.
167
+
168
+ * Test suite has been adjusted to run on Azure Pipeline.
169
+
170
+ * Running "Documentation/doc-diff x" from anywhere other than the
171
+ top-level of the working tree did not show the usage string
172
+ correctly, which has been fixed.
173
+
174
+ * Use of the sparse tool got easier to customize from the command
175
+ line to help developers.
176
+
127
177
128
178
Fixes since v2.20
129
179
-----------------
@@ -265,7 +315,7 @@ Fixes since v2.20
265
315
* "git add --ignore-errors" did not work as advertised and instead
266
316
worked as an unintended synonym for "git add --renormalize", which
267
317
has been fixed.
268
- (merge 9e5da3d055 jk/add-ignore-errors-bit-assignment-fix later to maint).
318
+ (merge e2c2a37545 jk/add-ignore-errors-bit-assignment-fix later to maint).
269
319
270
320
* On a case-insensitive filesystem, we failed to compare the part of
271
321
the path that is above the worktree directory in an absolute
@@ -309,6 +359,50 @@ Fixes since v2.20
309
359
* "git fetch" output cleanup.
310
360
(merge dc40b24df4 nd/fetch-compact-update later to maint).
311
361
362
+ * "git cat-file --batch" reported a dangling symbolic link by
363
+ mistake, when it wanted to report that a given name is ambiguous.
364
+
365
+ * Documentation around core.crlf has been updated.
366
+ (merge c9446f0504 jk/autocrlf-overrides-eol-doc later to maint).
367
+
368
+ * The documentation of "git commit-tree" said that the command
369
+ understands "--gpg-sign" in addition to "-S", but the command line
370
+ parser did not know about the longhand, which has been corrected.
371
+
372
+ * "git rebase -x $cmd" did not reject multi-line command, even though
373
+ the command is incapable of handling such a command. It now is
374
+ rejected upfront.
375
+ (merge c762aada1a pw/rebase-x-sanity-check later to maint).
376
+
377
+ * Output from "git help" was not correctly aligned, which has been
378
+ fixed.
379
+ (merge 6195a76da4 nd/help-align-command-desc later to maint).
380
+
381
+ * The "git submodule summary" subcommand showed shortened commit
382
+ object names by mechanically truncating them at 7-hexdigit, which
383
+ has been improved to let "rev-parse --short" scale the length of
384
+ the abbreviation with the size of the repository.
385
+ (merge 0586a438f6 sh/submodule-summary-abbrev-fix later to maint).
386
+
387
+ * The way the OSX build jobs updates its build environment used the
388
+ "--quiet" option to "brew update" command, but it wasn't all that
389
+ quiet to be useful. The use of the option has been replaced with
390
+ an explicit redirection to the /dev/null (which incidentally would
391
+ have worked around a breakage by recent updates to homebrew, which
392
+ has fixed itself already).
393
+ (merge a1ccaedd62 sg/travis-osx-brew-breakage-workaround later to maint).
394
+
395
+ * "git --work-tree=$there --git-dir=$here describe --dirty" did not
396
+ work correctly as it did not pay attention to the location of the
397
+ worktree specified by the user by mistake, which has been
398
+ corrected.
399
+ (merge c801170b0c ss/describe-dirty-in-the-right-directory later to maint).
400
+
401
+ * "git fetch" over protocol v2 that needs to make a second connection
402
+ to backfill tags did not clear a variable that holds shallow
403
+ repository information correctly, leading to an access of freed
404
+ piece of memory.
405
+
312
406
* Code cleanup, docfix, build fix, etc.
313
407
(merge 89ba9a79ae hb/t0061-dot-in-path-fix later to maint).
314
408
(merge d173e799ea sb/diff-color-moved-config-option-fixup later to maint).
@@ -325,8 +419,11 @@ Fixes since v2.20
325
419
(merge 0650614982 cy/completion-typofix later to maint).
326
420
(merge 6881925ef5 rs/sha1-file-close-mapped-file-on-error later to maint).
327
421
(merge bd8d6f0def en/show-ref-doc-fix later to maint).
328
- (merge 1747125e2c cc/parial -clone-doc-typofix later to maint).
422
+ (merge 1747125e2c cc/partial -clone-doc-typofix later to maint).
329
423
(merge e01378753d cc/fetch-error-message-fix later to maint).
330
424
(merge 54e8c11215 jk/remote-insteadof-cleanup later to maint).
331
425
(merge d609615f48 js/test-git-installed later to maint).
332
426
(merge ba170517be ja/doc-style-fix later to maint).
427
+ (merge 86fb1c4e77 km/init-doc-typofix later to maint).
428
+ (merge 5cfd4a9d10 nd/commit-doc later to maint).
429
+ (merge 9fce19a431 ab/diff-tree-doc-fix later to maint).
0 commit comments