]>
Commit | Line | Data |
---|---|---|
79bcaf00 JH |
1 | Git 2.29 Release Notes |
2 | ====================== | |
3 | ||
4 | Updates since v2.28 | |
5 | ------------------- | |
6 | ||
7 | UI, Workflows & Features | |
8 | ||
9 | * "git help log" has been enhanced by sharing more material from the | |
10 | documentation for the underlying "git rev-list" command. | |
11 | ||
12 | * "git for-each-ref --format=<>" learned %(contents:size). | |
13 | ||
85b4e0a6 JH |
14 | * "git merge" learned to selectively omit " into <branch>" at the end |
15 | of the title of default merge message with merge.suppressDest | |
16 | configuration. | |
17 | ||
7814e8a0 JH |
18 | * The component to respond to "git fetch" request is made more |
19 | configurable to selectively allow or reject object filtering | |
20 | specification used for partial cloning. | |
21 | ||
2befe972 JH |
22 | * Stop when "sendmail.*" configuration variables are defined, which |
23 | could be a mistaken attempt to define "sendemail.*" variables. | |
24 | ||
25 | * The existing backends for "git mergetool" based on variants of vim | |
26 | have been refactored and then support for "nvim" has been added. | |
27 | ||
28 | * "git bisect" learns the "--first-parent" option to find the first | |
29 | breakage along the first-parent chain. | |
30 | ||
31 | * "git log --first-parent -p" showed patches only for single-parent | |
32 | commits on the first-parent chain; the "--first-parent" option has | |
33 | been made to imply "-m". Use "--no-diff-merges" to restore the | |
34 | previous behaviour to omit patches for merge commits. | |
35 | ||
675a4aaf JH |
36 | * The commit labels used to explain each side of conflicted hunks |
37 | placed by the sequencer machinery have been made more readable by | |
38 | humans. | |
39 | ||
e9b77c84 JH |
40 | * The "--batch-size" option of "git multi-pack-index repack" command |
41 | is now used to specify that very small packfiles are collected into | |
42 | one until the total size roughly exceeds it. | |
43 | ||
44 | * The recent addition of SHA-256 support is marked as experimental in | |
45 | the documentation. | |
46 | ||
47 | * "git fetch" learned --no-write-fetch-head option to avoid writing | |
48 | the FETCH_HEAD file. | |
49 | ||
20de7e7e JH |
50 | * Command line completion (in contrib/) usually omits redundant, |
51 | deprecated and/or dangerous options from its output; it learned to | |
52 | optionally include all of them. | |
53 | ||
79bcaf00 JH |
54 | |
55 | Performance, Internal Implementation, Development Support etc. | |
56 | ||
57 | * The changed-path Bloom filter is improved using ideas from an | |
58 | independent implementation. | |
59 | ||
60 | * Updates to the changed-paths bloom filter. | |
61 | ||
62 | * The test framework has been updated so that most tests will run | |
63 | with predictable (artificial) timestamps. | |
64 | ||
65 | * Preliminary clean-up of the refs API in preparation for adding a | |
66 | new refs backend "reftable". | |
67 | ||
68 | * Dev support to limit the use of test_must_fail to only git commands. | |
69 | ||
dc04167d JH |
70 | * While packing many objects in a repository with a promissor remote, |
71 | lazily fetching missing objects from the promissor remote one by | |
72 | one may be inefficient---the code now attempts to fetch all the | |
73 | missing objects in batch (obviously this won't work for a lazy | |
74 | clone that lazily fetches tree objects as you cannot even enumerate | |
75 | what blobs are missing until you learn which trees are missing). | |
76 | ||
77 | * The pretend-object mechanism checks if the given object already | |
78 | exists in the object store before deciding to keep the data | |
79 | in-core, but the check would have triggered lazy fetching of such | |
80 | an object from a promissor remote. | |
81 | ||
4f0a8be7 JH |
82 | * The argv_array API is useful for not just managing argv but any |
83 | "vector" (NULL-terminated array) of strings, and has seen adoption | |
84 | to a certain degree. It has been renamed to "strvec" to reduce the | |
85 | barrier to adoption. | |
86 | ||
675a4aaf JH |
87 | * The final leg of SHA-256 transition plus doc updates. Note that |
88 | there is no inter-operability between SHA-1 and SHA-256 | |
89 | repositories yet. | |
7814e8a0 JH |
90 | |
91 | * CMake support to build with MSVC for Windows bypassing the Makefile. | |
92 | ||
878e7276 JH |
93 | * A new helper function has_object() has been introduced to make it |
94 | easier to mark object existence checks that do and don't want to | |
95 | trigger lazy fetches, and a few such checks are converted using it. | |
96 | ||
2befe972 JH |
97 | * A no-op replacement function implemented as a C preprocessor macro |
98 | does not perform as good a job as one implemented as a "static | |
99 | inline" function in catching errors in parameters; replace the | |
100 | former with the latter in <git-compat-util.h> header. | |
101 | ||
102 | * Test framework update. | |
103 | (merge d572f52a64 es/test-cmp-typocatcher later to maint). | |
104 | ||
675a4aaf JH |
105 | * Updates to "git merge" tests, in preparation for a new merge |
106 | strategy backend. | |
107 | ||
108 | * midx and commit-graph files now use the byte defined in their file | |
109 | format specification for identifying the hash function used for | |
110 | object names. | |
111 | ||
20de7e7e JH |
112 | * The FETCH_HEAD is now always read from the filesystem regardless of |
113 | the ref backend in use, as its format is much richer than the | |
114 | normal refs, and written directly by "git fetch" as a plain file.. | |
115 | ||
79bcaf00 JH |
116 | |
117 | Fixes since v2.28 | |
118 | ----------------- | |
119 | ||
120 | * "git clone --separate-git-dir=$elsewhere" used to stomp on the | |
121 | contents of the existing directory $elsewhere, which has been | |
122 | taught to fail when $elsewhere is not an empty directory. | |
123 | (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint). | |
124 | ||
79bcaf00 JH |
125 | * With the base fix to 2.27 regresion, any new extensions in a v0 |
126 | repository would still be silently honored, which is not quite | |
127 | right. Instead, complain and die loudly. | |
128 | (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint). | |
129 | ||
130 | * Fetching from a lazily cloned repository resulted at the server | |
131 | side in attempts to lazy fetch objects that the client side has, | |
132 | many of which will not be available from the third-party anyway. | |
133 | (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint). | |
134 | ||
135 | * Fix to an ancient bug caused by an over-eager attempt for | |
136 | optimization. | |
137 | (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint). | |
138 | ||
139 | * Pushing a ref whose name contains non-ASCII character with the | |
140 | "--force-with-lease" option did not work over smart HTTP protocol, | |
141 | which has been corrected. | |
142 | (merge cd85b447bf bc/push-cas-cquoted-refname later to maint). | |
143 | ||
144 | * "git mv src dst", when src is an unmerged path, errored out | |
145 | correctly but with an incorrect error message to claim that src is | |
146 | not tracked, which has been clarified. | |
147 | (merge 9b906af657 ct/mv-unmerged-path-error later to maint). | |
148 | ||
149 | * Fix to a regression introduced during 2.27 cycle. | |
150 | (merge cada7308ad en/fill-directory-exponential later to maint). | |
151 | ||
dc04167d JH |
152 | * Command line completion (in contrib/) update. |
153 | (merge 688b87c81b mp/complete-show-color-moved later to maint). | |
154 | ||
4f0a8be7 JH |
155 | * All "mergy" operations that internally use the merge-recursive |
156 | machinery should honor the merge.renormalize configuration, but | |
157 | many of them didn't. | |
158 | ||
7814e8a0 JH |
159 | * Doc cleanup around "worktree". |
160 | (merge dc9c144be5 es/worktree-doc-cleanups later to maint). | |
161 | ||
878e7276 JH |
162 | * The "git blame --first-parent" option was not documented, but now |
163 | it is. | |
164 | (merge 11bc12ae1e rp/blame-first-parent-doc later to maint). | |
165 | ||
2befe972 JH |
166 | * The logic to find the ref transaction hook script attempted to |
167 | cache the path to the found hook without realizing that it needed | |
168 | to keep a copied value, as the API it used returned a transitory | |
169 | buffer space. This has been corrected. | |
170 | (merge 09b2aa30c9 ps/ref-transaction-hook later to maint). | |
171 | ||
172 | * Recent versions of "git diff-files" shows a diff between the index | |
173 | and the working tree for "intent-to-add" paths as a "new file" | |
174 | patch; "git apply --cached" should be able to take "git diff-files" | |
175 | and should act as an equivalent to "git add" for the path, but the | |
176 | command failed to do so for such a path. | |
177 | (merge 4c025c667e rp/apply-cached-with-i-t-a later to maint). | |
178 | ||
675a4aaf JH |
179 | * "git diff [<tree-ish>] $path" for a $path that is marked with i-t-a |
180 | bit was not showing the mode bits from the working tree. | |
181 | (merge cb0dd22b82 rp/ita-diff-modefix later to maint). | |
182 | ||
183 | * Ring buffer with size 4 used for bin-hex translation resulted in a | |
184 | wrong object name in the sequencer's todo output, which has been | |
185 | corrected. | |
186 | (merge 5da69c0dac ak/sequencer-fix-find-uniq-abbrev later to maint). | |
187 | ||
188 | * When given more than one target line ranges, "git blame -La,b | |
189 | -Lc,d" was over-eager to coalesce groups of original lines and | |
190 | showed incorrect results, which has been corrected. | |
191 | (merge c2ebaa27d6 jk/blame-coalesce-fix later to maint). | |
192 | ||
193 | * The regexp to identify the function boundary for FORTRAN programs | |
194 | has been updated. | |
195 | (merge 75c3b6b2e8 pb/userdiff-fortran-update later to maint). | |
196 | ||
197 | * A few end-user facing messages have been updated to be | |
198 | hash-algorithm agnostic. | |
199 | (merge 4279000d3e jc/object-names-are-not-sha-1 later to maint). | |
200 | ||
201 | * "unlink" emulation on MinGW has been optimized. | |
202 | (merge 680e0b4524 jh/mingw-unlink later to maint). | |
203 | ||
e9b77c84 JH |
204 | * The purpose of "git init --separate-git-dir" is to initialize a |
205 | new project with the repository separate from the working tree, | |
206 | or, in the case of an existing project, to move the repository | |
207 | (the .git/ directory) out of the working tree. It does not make | |
208 | sense to use --separate-git-dir with a bare repository for which | |
209 | there is no working tree, so disallow its use with bare | |
210 | repositories. | |
211 | (merge ccf236a23a es/init-no-separate-git-dir-in-bare later to maint). | |
212 | ||
213 | * "ls-files -o" mishandled the top-level directory of another git | |
214 | working tree that hangs in the current git working tree. | |
215 | (merge ab282aa548 en/dir-nonbare-embedded later to maint). | |
216 | ||
217 | * Fix some incorrect UNLEAK() annotations. | |
218 | (merge 3e19816dc0 jk/unleak-fixes later to maint). | |
219 | ||
220 | * Use more buffered I/O where we used to call many small write(2)s. | |
221 | (merge a698d67b08 rs/more-buffered-io later to maint). | |
222 | ||
223 | * The patch-id computation did not ignore the "incomplete last line" | |
224 | marker like whitespaces. | |
225 | (merge 82a62015a7 rs/patch-id-with-incomplete-line later to maint). | |
226 | ||
79bcaf00 | 227 | * Other code cleanup, docfix, build fix, etc. |
e8ab941b JH |
228 | (merge 84544f2ea3 sk/typofixes later to maint). |
229 | (merge b17f411ab5 ar/help-guides-doc later to maint). | |
230 | (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint). | |
231 | (merge 861c4ce141 en/typofixes later to maint). | |
232 | (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint). | |
233 | (merge e2bfa50ac3 jb/doc-packfile-name later to maint). | |
4f0a8be7 JH |
234 | (merge 918d8ff780 es/worktree-cleanup later to maint). |
235 | (merge dc156bc31f ma/t1450-quotefix later to maint). | |
236 | (merge 56e743426b en/merge-recursive-comment-fixes later to maint). | |
237 | (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint). | |
238 | (merge de20baf2c9 ny/notes-doc-sample-update later to maint). | |
239 | (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint). | |
878e7276 | 240 | (merge 6103d58b7f bc/sha-256-cvs-svn-updates later to maint). |
2befe972 | 241 | (merge ac900fddb7 ma/stop-progress-null-fix later to maint). |
675a4aaf JH |
242 | (merge e767963ab6 rs/upload-pack-sigchain-fix later to maint). |
243 | (merge a831908599 rs/preserve-merges-unused-code-removal later to maint). | |
244 | (merge 6dfefe70a9 jb/commit-graph-doc-fix later to maint). | |
245 | (merge 847b37271e pb/set-url-docfix later to maint). | |
e9b77c84 JH |
246 | (merge 748f733d54 mt/checkout-entry-dead-code-removal later to maint). |
247 | (merge ce820cbd58 dl/subtree-docs later to maint). | |
20de7e7e | 248 | (merge 55fe225dde jk/leakfix later to maint). |