What's cooking (2021/10 #04)

Junio C Hamano committed Oct 14, 2021 at 15:19 UTC 2d679f40c21efe91581ef430fe197c0e43a20e34
1 file changed +397 -367
whats-cooking.txt
+397 -367
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2021, #03; Mon, 11)
4 -X-master-at: 2a97289ad8b103625d3a1a12f66c27f50df822ce
5 -X-next-at: b88fcb3f61432d526395a9937acaea0c67ee1aaf
3 +Subject: What's cooking in git.git (Oct 2021, #04; Thu, 14)
4 +X-master-at: f443b226ca681d87a3a31e245a70e6bc2769123c
5 +X-next-at: 33379063c9546476a80d42c704efc4ea5d0d95e5
6
7 -What's cooking in git.git (Oct 2021, #03; Mon, 11)
7 +What's cooking in git.git (Oct 2021, #04; Thu, 14)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -18,8 +18,8 @@ useful"). Do not read too much into a topic being in (or not in)
18 'seen'. The ones marked with '.' do not appear in any of the
19 integration branches, but I am still holding onto them.
20
21 -The eleventh and twelfth batches of topics are in the 'master'
22 -branch, and quite a many topics started cooking in 'next'.
21 +A handful of topics have been merged to 'master' and 'next' has also
22 +acquired some topics.
23
24 Copies of the source code to Git live in many repositories, and the
25 following is a list of the ones I push into or their mirrors. Some
@@ -52,137 +52,354 @@ Release tarballs are available at:
52 --------------------------------------------------
53 [Graduated to 'master']
54
55 -* ab/designated-initializers (2021-09-27) 5 commits
56 - (merged to 'next' on 2021-10-03 at 179f652de6)
57 - + cbtree.h: define cb_init() in terms of CBTREE_INIT
58 - + *.h: move some *_INIT to designated initializers
59 - + *.h _INIT macros: don't specify fields equal to 0
60 - + *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
61 - + submodule-config.h: remove unused SUBMODULE_INIT macro
62 - (this branch is used by ab/designated-initializers-more.)
55 +* ab/align-parse-options-help (2021-09-22) 4 commits
56 + (merged to 'next' on 2021-10-06 at e22da7ef85)
57 + + parse-options: properly align continued usage output
58 + + git rev-parse --parseopt tests: add more usagestr tests
59 + + send-pack: properly use parse_options() API for usage string
60 + + parse-options API users: align usage output in C-strings
61
64 - Code clean-up.
62 + When "git cmd -h" shows more than one line of usage text (e.g.
63 + the cmd subcommand may take sub-sub-command), parse-options API
64 + learned to align these lines, even across i18n/l10n.
65 +
66 +
67 +* ab/config-based-hooks-1 (2021-09-27) 8 commits
68 + (merged to 'next' on 2021-10-06 at d05325ed35)
69 + + hook-list.h: add a generated list of hooks, like config-list.h
70 + + hook.c users: use "hook_exists()" instead of "find_hook()"
71 + + hook.c: add a hook_exists() wrapper and use it in bugreport.c
72 + + hook.[ch]: move find_hook() from run-command.c to hook.c
73 + + Makefile: remove an out-of-date comment
74 + + Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
75 + + Makefile: stop hardcoding {command,config}-list.h
76 + + Makefile: mark "check" target as .PHONY
77 + (this branch is used by ab/config-based-hooks-2.)
78 +
79 + Mostly preliminary clean-up in the hook API.
80 +
81 +
82 +* ab/help-config-vars (2021-09-23) 9 commits
83 + (merged to 'next' on 2021-10-06 at bf9538cfbd)
84 + + help: move column config discovery to help.c library
85 + + help / completion: make "git help" do the hard work
86 + + help tests: test --config-for-completion option & output
87 + + help: simplify by moving to OPT_CMDMODE()
88 + + help: correct logic error in combining --all and --guides
89 + + help: correct logic error in combining --all and --config
90 + + help tests: add test for --config output
91 + + help: correct usage & behavior of "git help --guides"
92 + + help: correct the usage string in -h and documentation
93 +
94 + Teach "git help -c" into helping the command line completion of
95 + configuration variables.
96 +
97 +
98 +* ab/lib-subtest (2021-09-22) 9 commits
99 + (merged to 'next' on 2021-10-06 at e8fa261811)
100 + + test-lib tests: get rid of copy/pasted mock test code
101 + + test-lib tests: assert 1 exit code, not non-zero
102 + + test-lib tests: refactor common part of check_sub_test_lib_test*()
103 + + test-lib tests: avoid subshell for "test_cmp" for readability
104 + + test-lib tests: don't provide a description for the sub-tests
105 + + test-lib tests: split up "write and run" into two functions
106 + + test-lib tests: move "run_sub_test" to a new lib-subtest.sh
107 + + Merge branch 'ps/t0000-output-directory-fix' into ab/lib-subtest
108 + + Merge branch 'jk/t0000-subtests-fix' into ab/lib-subtest
109 +
110 + Updates to the tests in t0000 to test the test framework.
111 +
112 +
113 +* ab/make-sparse-for-real (2021-09-22) 1 commit
114 + (merged to 'next' on 2021-10-06 at 10e3c31d6a)
115 + + Makefile: make the "sparse" target non-.PHONY
116 +
117 + Prevent "make sparse" from running for the source files that
118 + haven't been modified.
119 +
120 +
121 +* ds/add-rm-with-sparse-index (2021-09-28) 13 commits
122 + (merged to 'next' on 2021-10-06 at 80a9cda797)
123 + + advice: update message to suggest '--sparse'
124 + + mv: refuse to move sparse paths
125 + + rm: skip sparse paths with missing SKIP_WORKTREE
126 + + rm: add --sparse option
127 + + add: update --renormalize to skip sparse paths
128 + + add: update --chmod to skip sparse paths
129 + + add: implement the --sparse option
130 + + add: skip tracked paths outside sparse-checkout cone
131 + + add: fail when adding an untracked sparse file
132 + + dir: fix pattern matching on dirs
133 + + dir: select directories correctly
134 + + t1092: behavior for adding sparse files
135 + + t3705: test that 'sparse_entry' is unstaged
136 +
137 + "git add", "git mv", and "git rm" have been adjusted to avoid
138 + updating paths outside of the sparse-checkout definition unless
139 + the user specifies a "--sparse" option.
140 +
141 +
142 +* en/removing-untracked-fixes (2021-09-27) 12 commits
143 + (merged to 'next' on 2021-10-06 at fc4e387fda)
144 + + Documentation: call out commands that nuke untracked files/directories
145 + + Comment important codepaths regarding nuking untracked files/dirs
146 + + unpack-trees: avoid nuking untracked dir in way of locally deleted file
147 + + unpack-trees: avoid nuking untracked dir in way of unmerged file
148 + + Change unpack_trees' 'reset' flag into an enum
149 + + Remove ignored files by default when they are in the way
150 + + unpack-trees: make dir an internal-only struct
151 + + unpack-trees: introduce preserve_ignored to unpack_trees_options
152 + + read-tree, merge-recursive: overwrite ignored files by default
153 + + checkout, read-tree: fix leak of unpack_trees_options.dir
154 + + t2500: add various tests for nuking untracked files
155 + + Merge branch 'en/am-abort-fix' into en/removing-untracked-fixes
156 +
157 + Various fixes in code paths that move untracked files away to make room.
158 +
159 +
160 +* ja/doc-status-types-and-copies (2021-10-04) 4 commits
161 + (merged to 'next' on 2021-10-06 at 4de6571bf7)
162 + + Documentation/git-status: mention how to detect copies
163 + + Documentation/git-status: document porcelain status T (typechange)
164 + + Documentation/diff-format: state in which cases porcelain status is T
165 + + Documentation/git-status: remove impossible porcelain status DR and DC
166 +
167 + A few kinds of changes "git status" can show were not documented.
168 +
169 +
170 +* jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits
171 + (merged to 'next' on 2021-10-06 at 021f633b9c)
172 + + t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
173 + + run-command: create start_bg_command
174 + + simple-ipc/ipc-win32: add Windows ACL to named pipe
175 + + simple-ipc/ipc-win32: add trace2 debugging
176 + + simple-ipc: move definition of ipc_active_state outside of ifdef
177 + + simple-ipc: preparations for supporting binary messages.
178 + + trace2: add trace2_child_ready() to report on background children
179
180 + Built-in fsmonitor (part 1).
181
67 -* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit
68 - (merged to 'next' on 2021-10-03 at cd67328eed)
69 - + http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors
182
71 - HTTPS error handling updates.
183 +* mt/grep-submodule-textconv (2021-09-29) 1 commit
184 + (merged to 'next' on 2021-10-06 at 1950944b8c)
185 + + grep: demonstrate bug with textconv attributes and submodules
186
187 + "git grep --recurse-submodules" takes trees and blobs from the
188 + submodule repository, but the textconv settings when processing a
189 + blob from the submodule is not taken from the submodule repository.
190 + A test is added to demonstrate the issue, without fixing it.
191 +
192 +--------------------------------------------------
193 +[New Topics]
194 +
195 +* ab/fix-commit-error-message-upon-unwritable-object-store (2021-10-12) 2 commits
196 + (merged to 'next' on 2021-10-14 at 08c52f5cd5)
197 + + commit: fix duplication regression in permission error output
198 + + unwritable tests: assert exact error output
199 +
200 + "git commit" gave duplicated error message when the object store
201 + was unwritable, which has been corrected.
202 +
203 + Will merge to 'master'.
204
74 -* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit
75 - (merged to 'next' on 2021-10-03 at fc7a0a55d1)
76 - + config.c: remove unused git_config_key_is_valid()
205
78 - Code cleanup.
206 +* ab/test-cleanly-recreate-trash-directory (2021-10-11) 2 commits
207 + - SQUASH???
208 + - test-lib.sh: try to re-chmod & retry on failed trash removal
209
210 + Improve test framework around unwritable directories.
211
81 -* ab/sanitize-leak-ci (2021-09-23) 2 commits
82 - (merged to 'next' on 2021-10-03 at dcd62a3fc6)
83 - + tests: add a test mode for SANITIZE=leak, run it in CI
84 - + Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
85 - (this branch is used by ab/mark-leak-free-tests, ab/mark-leak-free-tests-more and ab/unpack-trees-leakfix.)
212 + Will merge to 'next' after squashing the fixlet in?
213
87 - CI learns to run the leak sanitizer builds.
214
215 +* rb/doc-commit-header-continuation-line (2021-10-11) 1 commit
216 + - signature-format.txt: add space to fix gpgsig continuation line
217
90 -* da/difftool (2021-09-30) 6 commits
91 - (merged to 'next' on 2021-10-03 at 3ba0335e4e)
92 - + difftool: add a missing space to the run_dir_diff() comments
93 - + difftool: remove an unnecessary call to strbuf_release()
94 - + difftool: refactor dir-diff to write files using helper functions
95 - + difftool: create a tmpdir path without repeated slashes
96 - + Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool
97 - + Merge branch 'ab/retire-option-argument' into da/difftool
218 + Values in the header portion of commit object can be multi-lined
219 + by a single SP indentation of the second and subsequent lines, and
220 + this applies to an empty line as well. Update an example in the
221 + technical documentation to highlight it.
222
99 - Code clean-up in "git difftool".
223 + Under discussion.
224
225 + I am tempted to supersede this with the one with another approach,
226 + in the jc/doc-commit-header-continuation-line topic.
227
102 -* jk/ref-paranoia (2021-09-27) 16 commits
103 - (merged to 'next' on 2021-10-03 at 8c2cb6a3a6)
104 - + refs: drop "broken" flag from for_each_fullref_in()
105 - + ref-filter: drop broken-ref code entirely
106 - + ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
107 - + repack, prune: drop GIT_REF_PARANOIA settings
108 - + refs: turn on GIT_REF_PARANOIA by default
109 - + refs: omit dangling symrefs when using GIT_REF_PARANOIA
110 - + refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
111 - + refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
112 - + refs-internal.h: move DO_FOR_EACH_* flags next to each other
113 - + t5312: be more assertive about command failure
114 - + t5312: test non-destructive repack
115 - + t5312: create bogus ref as necessary
116 - + t5312: drop "verbose" helper
117 - + t5600: provide detached HEAD for corruption failures
118 - + t5516: don't use HEAD ref for invalid ref-deletion tests
119 - + t7900: clean up some more broken refs
120 - (this branch is used by jt/no-abuse-alternate-odb-for-submodules.)
228
122 - The ref iteration code used to optionally allow dangling refs to be
123 - shown, which has been tightened up.
229 +* rs/disable-gc-during-perf-tests (2021-10-11) 1 commit
230 + (merged to 'next' on 2021-10-14 at e0dd4b9bd4)
231 + + perf: disable automatic housekeeping
232
233 + Avoid performance measurements from getting ruined by gc and other
234 + housekeeping pauses interfering in the middle.
235
126 -* js/win-lazyload-buildfix (2021-09-28) 3 commits
127 - (merged to 'next' on 2021-10-03 at 26802e5d73)
128 - + Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
129 - + lazyload.h: use an even more generic function pointer than FARPROC
130 - + lazyload.h: fix warnings about mismatching function pointer types
236 + Will merge to 'master'.
237
132 - Compilation fix.
238
239 +* da/mergetools-special-case-xxdiff-exit-128 (2021-10-13) 1 commit
240 + - mergetools/xxdiff: prevent segfaults from stopping difftool
241
135 -* mr/bisect-in-c-4 (2021-10-01) 1 commit
136 - (merged to 'next' on 2021-10-06 at c13c14238d)
137 - + bisect--helper: add space between colon and following sentence
242 + The xxdiff difftool backend can exit with status 128, which the
243 + difftool-helper that launches the backend takes as a significant
244 + failure, when it is not significant at all. Work it around.
245
139 - Message fix.
246 + Will merge to 'next'.
247
248
142 -* rs/p3400-lose-tac (2021-10-03) 1 commit
143 - (merged to 'next' on 2021-10-06 at 688dc7137c)
144 - + p3400: stop using tac(1)
249 +* fs/ssh-signing-fix (2021-10-13) 3 commits
250 + (merged to 'next' on 2021-10-14 at 97735c6091)
251 + + ssh signing: clarify trustlevel usage in docs
252 + + ssh signing: fmt-merge-msg tests & config parse
253 + + Merge branch 'fs/ssh-signing' into fs/ssh-signing-fix
254 + (this branch uses fs/ssh-signing.)
255
146 - Test portability update.
256 + Fix-up for the other topic already in 'next'.
257 +
258 + Will merge to 'master'.
259
260
149 -* sg/test-split-index-fix (2021-09-07) 7 commits
150 - (merged to 'next' on 2021-09-29 at 661ae75778)
151 - + read-cache: fix GIT_TEST_SPLIT_INDEX
152 - + tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
153 - + read-cache: look for shared index files next to the index, too
154 - + t1600-index: disable GIT_TEST_SPLIT_INDEX
155 - + t1600-index: don't run git commands upstream of a pipe
156 - + t1600-index: remove unnecessary redirection
157 - + Merge branch 'ds/sparse-index-ignored-files' into sg/test-split-index-fix
261 +* gc/remote-with-fewer-static-global-variables (2021-10-13) 3 commits
262 + - remote: add struct repository parameter to external functions
263 + - remote: use remote_state parameter internally
264 + - remote: move static variables into per-repository struct
265
159 - Test updates.
266 + Code clean-up to eventually allow information on remotes defined
267 + for an arbitrary repository to be read.
268
269 + Will merge to 'next'?
270
162 -* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit
163 - (merged to 'next' on 2021-10-06 at 619a7db2d4)
164 - + t/perf/aggregate.perl: tolerate leading spaces
271
166 - Test portability update.
272 +* jc/doc-commit-header-continuation-line (2021-10-12) 1 commit
273 + - signature-format.txt: explain and illustrate multi-line headers
274 +
275 + Doc update.
276 +
277 + Will merge to 'next'?
278 +
279 +
280 +* jk/loosen-urlmatch (2021-10-12) 1 commit
281 + - urlmatch: add underscore to URL_HOST_CHARS
282 +
283 + Treat "_" as any other DNS-valid characters in an URL when matching
284 + the per-URL configuration variable names.
285 +
286 + Will merge to 'next'?
287 +
288 +
289 +* js/windows-ci-path-fix (2021-10-13) 1 commit
290 + (merged to 'next' on 2021-10-14 at 3047fe56fc)
291 + + ci(windows): ensure that we do not pick up random executables
292 +
293 + The PATH used in CI job may be too wide and let incompatible dlls
294 + to be grabbed, which can cause the build&test to fail. Tighten it.
295 +
296 + Will merge to 'master'.
297 +
298 +
299 +* rs/add-dry-run-without-objects (2021-10-12) 1 commit
300 + (merged to 'next' on 2021-10-14 at a42928e134)
301 + + add: don't write objects with --dry-run
302 +
303 + Stop "git add --dry-run" from creating new blob and tree objects.
304 +
305 + Will merge to 'master'.
306 +
307 +
308 +* tz/doc-link-to-bundle-format-fix (2021-10-13) 1 commit
309 + (merged to 'next' on 2021-10-14 at dee8053d49)
310 + + doc: add bundle-format to TECH_DOCS
311 +
312 + Doc update.
313 +
314 + Will merge to 'master'.
315 +
316 +
317 +* ab/test-bail (2021-10-14) 2 commits
318 + - test-lib.sh: use "Bail out!" syntax on bad SANITIZE=leak use
319 + - test-lib.sh: de-duplicate error() teardown code
320 +
321 + A new feature has been added to abort early in the test framework.
322 +
323 + Will merge to 'next'.
324
325
169 -* tb/midx-write-propagate-namehash (2021-09-17) 7 commits
170 - (merged to 'next' on 2021-09-29 at 24732fcfc8)
171 - + t5326: test propagating hashcache values
172 - + p5326: generate pack bitmaps before writing the MIDX bitmap
173 - + p5326: don't set core.multiPackIndex unnecessarily
174 - + p5326: create missing 'perf-tag' tag
175 - + midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps
176 - + pack-bitmap.c: propagate namehash values from existing bitmaps
177 - + t/helper/test-bitmap.c: add 'dump-hashes' mode
326 +* jh/builtin-fsmonitor-part2 (2021-10-14) 5 commits
327 + - fsmonitor: update fsmonitor config documentation
328 + - fsmonitor: use IPC to query the builtin FSMonitor daemon
329 + - fsmonitor: config settings are repository-specific
330 + - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
331 + - fsmonitor: enhance existing comments
332
179 - "git multi-pack-index write --bitmap" learns to propagate the
180 - hashcache from original bitmap to resulting bitmap.
333 + Built-in fsmonitor (part 2).
334 +
335 +
336 +* ld/sparse-diff-blame (2021-10-14) 3 commits
337 + - blame: enable and test the sparse index
338 + - diff: enable and test the sparse index
339 + - Merge branch 'vd/sparse-reset' into ld/sparse-diff-blame
340 + (this branch uses vd/sparse-reset.)
341 +
342 + Teach diff and blame to work well with sparse index.
343 +
344 + Seems to break tests (e.g. 1092) when merged to 'seen'.
345
346 --------------------------------------------------
183 -[New Topics]
347 +[Stalled]
348 +
349 +* ar/submodule-update (2021-10-13) 9 commits
350 + . submodule--helper: rename helper functions
351 + . submodule--helper: remove unused helpers
352 + . submodule: move core cmd_update() logic to C
353 + . submodule--helper: run update using child process struct
354 + . submodule--helper: allow setting superprefix for init_submodule()
355 + . submodule--helper: refactor get_submodule_displaypath()
356 + . submodule--helper: rename helpers for update-clone
357 + . submodule--helper: get remote names from any repository
358 + . submodule--helper: split up ensure_core_worktree()
359 +
360 + Rewrite of "git submodule update" in C.
361 +
362 + Kicked out of 'seen' to make room for es/superproject-aware-submodules
363 + which is among the topics this topic stomps on.
364 +
365 +
366 +* pw/diff-color-moved-fix (2021-08-05) 13 commits
367 + - diff: drop unused options parameter from cmp_in_block_with_wsd()
368 + - diff --color-moved: intern strings
369 + - diff: use designated initializers for emitted_diff_symbol
370 + - diff --color-moved-ws=allow-indentation-change: improve hash lookups
371 + - diff --color-moved: stop clearing potential moved blocks
372 + - diff --color-moved: shrink potential moved blocks as we go
373 + - diff --color-moved: unify moved block growth functions
374 + - diff --color-moved: call comparison function directly
375 + - diff --color-moved-ws=allow-indentation-change: simplify and optimize
376 + - diff: simplify allow-indentation-change delta calculation
377 + - diff --color-moved: avoid false short line matches and bad zerba coloring
378 + - diff --color-moved=zebra: fix alternate coloring
379 + - diff --color-moved: add perf tests
380 +
381 + Originally merged to 'next' on 2021-08-05
382 +
383 + Long-overdue correctness and performance update to "diff
384 + --color-moved" feature.
385 +
386 + Expecting a reroll.
387 + cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
388 +
389 +
390 +* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
391 + - fetch: fix segfault on --set-upstream while on a detached HEAD
392 +
393 + "git fetch --set-upstream" while on detached HEAD segfaulted
394 + instead of noticing that such an operation did not make sense.
395 +
396 + Expecting a reroll.
397 + cf. <xmqqsg0ri5mq.fsf@gitster.g>
398 +
399 +--------------------------------------------------
400 +[Cooking]
401
185 -* ab/mark-leak-free-tests (2021-10-07) 11 commits
402 +* ab/mark-leak-free-tests (2021-10-12) 10 commits
403 - leak tests: mark some misc tests as passing with SANITIZE=leak
404 - leak tests: mark various "generic" tests as passing with SANITIZE=leak
405 - leak tests: mark some read-tree tests as passing with SANITIZE=leak
@@ -190,15 +407,13 @@ Release tarballs are available at:
407 - leak tests: mark all checkout-index tests as passing with SANITIZE=leak
408 - leak tests: mark all trace2 tests as passing with SANITIZE=leak
409 - leak tests: mark all ls-tree tests as passing with SANITIZE=leak
193 - - leak tests: mark t0000-init.sh as passing with SANITIZE=leak
410 - leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
411 - leak tests: run various built-in tests in t00*.sh SANITIZE=leak
412 - Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests
413
414 Bunch of tests are marked as "passing leak check".
415
200 - Expecting a reroll.
201 - cf. <xmqqmtnko3zn.fsf@gitster.g>
416 + Will merge to 'next'.
417
418
419 * ab/mark-leak-free-tests-more (2021-10-07) 8 commits
@@ -213,16 +428,19 @@ Release tarballs are available at:
428
429 Bunch of tests are marked as "passing leak check".
430
216 - Will merge to 'next'?
431 + Will merge to 'next'.
432
433
219 -* ab/unpack-trees-leakfix (2021-10-07) 2 commits
220 - - unpack-trees: don't leak memory in verify_clean_subdirectory()
221 - - Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix
434 +* ab/unpack-trees-leakfix (2021-10-13) 4 commits
435 + (merged to 'next' on 2021-10-14 at bb54827704)
436 + + sequencer: fix a memory leak in do_reset()
437 + + sequencer: add a "goto cleanup" to do_reset()
438 + + unpack-trees: don't leak memory in verify_clean_subdirectory()
439 + + Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix
440
441 Leakfix.
442
225 - Will merge to 'next'?
443 + Will merge to 'master'.
444
445
446 * jk/cat-file-batch-all-wo-replace (2021-10-08) 5 commits
@@ -252,7 +470,7 @@ Release tarballs are available at:
470
471 Userdiff patterns for the C++ language has been updated.
472
255 - Will merge to 'next'?
473 + Will merge to 'next'.
474
475
476 * mp/absorb-submodule-git-dir-upon-deinit (2021-10-07) 1 commit
@@ -326,77 +544,24 @@ Release tarballs are available at:
544 Will merge to 'master'.
545
546
329 -* vd/sparse-reset (2021-10-07) 8 commits
547 +* vd/sparse-reset (2021-10-11) 8 commits
548 - unpack-trees: improve performance of next_cache_entry
549 - reset: make --mixed sparse-aware
550 - reset: make sparse-aware (except --mixed)
551 - reset: integrate with sparse index
552 - reset: expand test coverage for sparse checkouts
335 - - update-index: add --force-full-index option for expand/collapse test
553 + - sparse-index: update command for expand/collapse test
554 - reset: preserve skip-worktree bit in mixed reset
555 - reset: rename is_missing to !is_in_reset_tree
556 + (this branch is used by ld/sparse-diff-blame.)
557
558 Various operating modes of "git reset" have been made to work
559 better with the sparse index.
560
561 Needs review.
562
344 ---------------------------------------------------
345 -[Stalled]
346 -
347 -* ar/submodule-update (2021-09-20) 8 commits
348 - . submodule--helper: rename helper functions
349 - . submodule--helper: remove unused helpers
350 - . submodule--helper: remove update-clone subcommand
351 - . submodule: move core cmd_update() logic to C
352 - . submodule--helper: refactor get_submodule_displaypath()
353 - . submodule--helper: rename helpers for update-clone
354 - . submodule--helper: get remote names from any repository
355 - . submodule--helper: split up ensure_core_worktree()
356 -
357 - Rewrite of "git submodule update" in C.
358 -
359 - Kicked out of 'seen' to make room for es/superproject-aware-submodules
360 - which is among the topics this topic stomps on.
361 -
362 -
363 -* pw/diff-color-moved-fix (2021-08-05) 13 commits
364 - - diff: drop unused options parameter from cmp_in_block_with_wsd()
365 - - diff --color-moved: intern strings
366 - - diff: use designated initializers for emitted_diff_symbol
367 - - diff --color-moved-ws=allow-indentation-change: improve hash lookups
368 - - diff --color-moved: stop clearing potential moved blocks
369 - - diff --color-moved: shrink potential moved blocks as we go
370 - - diff --color-moved: unify moved block growth functions
371 - - diff --color-moved: call comparison function directly
372 - - diff --color-moved-ws=allow-indentation-change: simplify and optimize
373 - - diff: simplify allow-indentation-change delta calculation
374 - - diff --color-moved: avoid false short line matches and bad zerba coloring
375 - - diff --color-moved=zebra: fix alternate coloring
376 - - diff --color-moved: add perf tests
377 -
378 - Originally merged to 'next' on 2021-08-05
379 -
380 - Long-overdue correctness and performance update to "diff
381 - --color-moved" feature.
382 -
383 - Expecting a reroll.
384 - cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
385 -
386 -
387 -* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
388 - - fetch: fix segfault on --set-upstream while on a detached HEAD
389 -
390 - "git fetch --set-upstream" while on detached HEAD segfaulted
391 - instead of noticing that such an operation did not make sense.
392 -
393 - Expecting a reroll.
394 - cf. <xmqqsg0ri5mq.fsf@gitster.g>
563
396 ---------------------------------------------------
397 -[Cooking]
398 -
399 -* gc/use-repo-settings (2021-10-04) 3 commits
564 +* gc/use-repo-settings (2021-10-12) 3 commits
565 - gc: perform incremental repack when implictly enabled
566 - fsck: verify multi-pack-index when implictly enabled
567 - fsck: verify commit graph when implicitly enabled
@@ -405,16 +570,17 @@ Release tarballs are available at:
570 subsystem, as things like feature.experimental can affect their
571 default values.
572
408 - Under review.
409 - cf. <70aca052-716f-40ed-47c4-1882fdbd221e@gmail.com>
573 + Expecting a reroll.
574 + cf. <kl6l1r4p3mi3.fsf@chooglen-macbookpro.roam.corp.google.com>
575
576
577 * jh/perf-remove-test-times (2021-10-04) 1 commit
413 - - t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
578 + (merged to 'next' on 2021-10-14 at 473a26166c)
579 + + t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
580
581 Perf test fix.
582
417 - Will merge to 'next'.
583 + Will merge to 'master'.
584
585
586 * pw/fix-some-issues-in-reset-head (2021-10-01) 12 commits
@@ -483,18 +649,6 @@ Release tarballs are available at:
649 Will merge to 'master'.
650
651
486 -* ja/doc-status-types-and-copies (2021-10-04) 4 commits
487 - (merged to 'next' on 2021-10-06 at 4de6571bf7)
488 - + Documentation/git-status: mention how to detect copies
489 - + Documentation/git-status: document porcelain status T (typechange)
490 - + Documentation/diff-format: state in which cases porcelain status is T
491 - + Documentation/git-status: remove impossible porcelain status DR and DC
492 -
493 - A few kinds of changes "git status" can show were not described.
494 -
495 - Will merge to 'master'.
496 -
497 -
652 * ab/designated-initializers-more (2021-10-01) 6 commits
653 (merged to 'next' on 2021-10-11 at 9b9836c3df)
654 + builtin/remote.c: add and use SHOW_INFO_INIT
@@ -523,24 +677,10 @@ Release tarballs are available at:
677
678 Random changes to parse-options implementation.
679
526 - Will merge to 'next'?
527 -
528 -
529 -* mt/grep-submodule-textconv (2021-09-29) 1 commit
530 - (merged to 'next' on 2021-10-06 at 1950944b8c)
531 - + grep: demonstrate bug with textconv attributes and submodules
532 -
533 - "git grep --recurse-submodules" takes trees and blobs from the
534 - submodule repository, but the textconv settings when processing a
535 - blob from the submodule is not taken from the submodule repository.
536 - A demonstration is added to demonstrate the issue, without fixing
537 - it.
538 -
539 - Will merge to 'master'.
680 + Will merge to 'next'.
681
682
542 -* es/superproject-aware-submodules (2021-08-19) 5 commits
543 - - fixup! introduce submodule.superprojectGitDir record
683 +* es/superproject-aware-submodules (2021-10-14) 4 commits
684 - submodule: record superproject gitdir during 'update'
685 - submodule: record superproject gitdir during absorbgitdirs
686 - introduce submodule.superprojectGitDir record
@@ -554,72 +694,48 @@ Release tarballs are available at:
694
695
696 * ab/fsck-unexpected-type (2021-10-01) 17 commits
557 - - fsck: report invalid object type-path combinations
558 - - fsck: don't hard die on invalid object types
559 - - object-file.c: stop dying in parse_loose_header()
560 - - object-file.c: return ULHR_TOO_LONG on "header too long"
561 - - object-file.c: use "enum" return type for unpack_loose_header()
562 - - object-file.c: simplify unpack_loose_short_header()
563 - - object-file.c: make parse_loose_header_extended() public
564 - - object-file.c: return -1, not "status" from unpack_loose_header()
565 - - object-file.c: don't set "typep" when returning non-zero
566 - - cat-file tests: test for current --allow-unknown-type behavior
567 - - cat-file tests: add corrupt loose object test
568 - - cat-file tests: test for missing/bogus object with -t, -s and -p
569 - - cat-file tests: move bogus_* variable declarations earlier
570 - - fsck tests: test for garbage appended to a loose object
571 - - fsck tests: test current hash/type mismatch behavior
572 - - fsck tests: refactor one test to use a sub-repo
573 - - fsck tests: add test for fsck-ing an unknown type
697 + (merged to 'next' on 2021-10-14 at 10edc78c9c)
698 + + fsck: report invalid object type-path combinations
699 + + fsck: don't hard die on invalid object types
700 + + object-file.c: stop dying in parse_loose_header()
701 + + object-file.c: return ULHR_TOO_LONG on "header too long"
702 + + object-file.c: use "enum" return type for unpack_loose_header()
703 + + object-file.c: simplify unpack_loose_short_header()
704 + + object-file.c: make parse_loose_header_extended() public
705 + + object-file.c: return -1, not "status" from unpack_loose_header()
706 + + object-file.c: don't set "typep" when returning non-zero
707 + + cat-file tests: test for current --allow-unknown-type behavior
708 + + cat-file tests: add corrupt loose object test
709 + + cat-file tests: test for missing/bogus object with -t, -s and -p
710 + + cat-file tests: move bogus_* variable declarations earlier
711 + + fsck tests: test for garbage appended to a loose object
712 + + fsck tests: test current hash/type mismatch behavior
713 + + fsck tests: refactor one test to use a sub-repo
714 + + fsck tests: add test for fsck-ing an unknown type
715
716 "git fsck" has been taught to report mismatch between expected and
717 actual types of an object better.
718
578 - Will merge to 'next'.
579 -
580 -
581 -* ab/config-based-hooks-1 (2021-09-27) 8 commits
582 - (merged to 'next' on 2021-10-06 at d05325ed35)
583 - + hook-list.h: add a generated list of hooks, like config-list.h
584 - + hook.c users: use "hook_exists()" instead of "find_hook()"
585 - + hook.c: add a hook_exists() wrapper and use it in bugreport.c
586 - + hook.[ch]: move find_hook() from run-command.c to hook.c
587 - + Makefile: remove an out-of-date comment
588 - + Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
589 - + Makefile: stop hardcoding {command,config}-list.h
590 - + Makefile: mark "check" target as .PHONY
591 -
592 - Mostly preliminary clean-up in the hook API.
593 -
594 - Will merge to 'master'.
595 -
596 -
597 -* ab/make-sparse-for-real (2021-09-22) 1 commit
598 - (merged to 'next' on 2021-10-06 at 10e3c31d6a)
599 - + Makefile: make the "sparse" target non-.PHONY
600 -
601 - Prevent "make sparse" from running for the source files that
602 - haven't been modified.
603 -
719 Will merge to 'master'.
720
721
722 * jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits
608 - - submodule: trace adding submodule ODB as alternate
609 - - submodule: pass repo to check_has_commit()
610 - - object-file: only register submodule ODB if needed
611 - - merge-{ort,recursive}: remove add_submodule_odb()
612 - - refs: peeling non-the_repository iterators is BUG
613 - - refs: teach arbitrary repo support to iterators
614 - - refs: plumb repo into ref stores
615 - - Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
616 - - Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
723 + (merged to 'next' on 2021-10-14 at ae49a2ceda)
724 + + submodule: trace adding submodule ODB as alternate
725 + + submodule: pass repo to check_has_commit()
726 + + object-file: only register submodule ODB if needed
727 + + merge-{ort,recursive}: remove add_submodule_odb()
728 + + refs: peeling non-the_repository iterators is BUG
729 + + refs: teach arbitrary repo support to iterators
730 + + refs: plumb repo into ref stores
731 + + Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
732 + + Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
733
734 Follow through the work to use the repo interface to access
735 submodule objects in-process, instead of abusing the alternate
736 object database interface.
737
622 - Will merge to 'next'?
738 + Will merge to 'master'.
739
740
741 * tp/send-email-completion (2021-10-07) 3 commits
@@ -648,26 +764,6 @@ Release tarballs are available at:
764 cf. <xmqq1r4vjji3.fsf@gitster.g>
765
766
651 -* en/removing-untracked-fixes (2021-09-27) 12 commits
652 - (merged to 'next' on 2021-10-06 at fc4e387fda)
653 - + Documentation: call out commands that nuke untracked files/directories
654 - + Comment important codepaths regarding nuking untracked files/dirs
655 - + unpack-trees: avoid nuking untracked dir in way of locally deleted file
656 - + unpack-trees: avoid nuking untracked dir in way of unmerged file
657 - + Change unpack_trees' 'reset' flag into an enum
658 - + Remove ignored files by default when they are in the way
659 - + unpack-trees: make dir an internal-only struct
660 - + unpack-trees: introduce preserve_ignored to unpack_trees_options
661 - + read-tree, merge-recursive: overwrite ignored files by default
662 - + checkout, read-tree: fix leak of unpack_trees_options.dir
663 - + t2500: add various tests for nuking untracked files
664 - + Merge branch 'en/am-abort-fix' into en/removing-untracked-fixes
665 -
666 - Various fixes in code paths that move untracked files away to make room.
667 -
668 - Will merge to 'master'.
669 -
670 -
767 * ks/submodule-add-message-fix (2021-09-20) 1 commit
768 - submodule--helper: fix incorrect newlines in an error message
769
@@ -694,53 +790,6 @@ Release tarballs are available at:
790 Will merge to 'next'?
791
792
697 -* jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits
698 - (merged to 'next' on 2021-10-06 at 021f633b9c)
699 - + t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
700 - + run-command: create start_bg_command
701 - + simple-ipc/ipc-win32: add Windows ACL to named pipe
702 - + simple-ipc/ipc-win32: add trace2 debugging
703 - + simple-ipc: move definition of ipc_active_state outside of ifdef
704 - + simple-ipc: preparations for supporting binary messages.
705 - + trace2: add trace2_child_ready() to report on background children
706 -
707 - Built-in fsmonitor (part 1).
708 -
709 - Will merge to 'master'.
710 -
711 -
712 -* ab/align-parse-options-help (2021-09-22) 4 commits
713 - (merged to 'next' on 2021-10-06 at e22da7ef85)
714 - + parse-options: properly align continued usage output
715 - + git rev-parse --parseopt tests: add more usagestr tests
716 - + send-pack: properly use parse_options() API for usage string
717 - + parse-options API users: align usage output in C-strings
718 -
719 - When "git cmd -h" shows more than one line of usage text (e.g.
720 - the cmd subcommand may take sub-sub-command), parse-options API
721 - learned to align these lines, even across i18n/l10n.
722 -
723 - Will merge to 'master'.
724 -
725 -
726 -* ab/help-config-vars (2021-09-23) 9 commits
727 - (merged to 'next' on 2021-10-06 at bf9538cfbd)
728 - + help: move column config discovery to help.c library
729 - + help / completion: make "git help" do the hard work
730 - + help tests: test --config-for-completion option & output
731 - + help: simplify by moving to OPT_CMDMODE()
732 - + help: correct logic error in combining --all and --guides
733 - + help: correct logic error in combining --all and --config
734 - + help tests: add test for --config output
735 - + help: correct usage & behavior of "git help --guides"
736 - + help: correct the usage string in -h and documentation
737 -
738 - Teach "git help -c" into helping the command line completion of
739 - configuration variables.
740 -
741 - Will merge to 'master'.
742 -
743 -
793 * tb/repack-write-midx (2021-10-07) 10 commits
794 (merged to 'next' on 2021-10-08 at ff8fec247e)
795 + test-read-midx: fix leak of bitmap_index struct
@@ -761,29 +810,6 @@ Release tarballs are available at:
810 Will merge to 'master'.
811
812
764 -* ds/add-rm-with-sparse-index (2021-09-28) 13 commits
765 - (merged to 'next' on 2021-10-06 at 80a9cda797)
766 - + advice: update message to suggest '--sparse'
767 - + mv: refuse to move sparse paths
768 - + rm: skip sparse paths with missing SKIP_WORKTREE
769 - + rm: add --sparse option
770 - + add: update --renormalize to skip sparse paths
771 - + add: update --chmod to skip sparse paths
772 - + add: implement the --sparse option
773 - + add: skip tracked paths outside sparse-checkout cone
774 - + add: fail when adding an untracked sparse file
775 - + dir: fix pattern matching on dirs
776 - + dir: select directories correctly
777 - + t1092: behavior for adding sparse files
778 - + t3705: test that 'sparse_entry' is unstaged
779 -
780 - "git add", "git mv", and "git rm" have been adjusted to avoid
781 - updating paths outside of the sparse-checkout definition unless
782 - the user specifies a "--sparse" option.
783 -
784 - Will merge to 'master'.
785 -
786 -
813 * en/zdiff3 (2021-09-20) 2 commits
814 - update documentation for new zdiff3 conflictStyle
815 - xdiff: implement a zealous diff3, or "zdiff3"
@@ -836,49 +862,52 @@ Release tarballs are available at:
862
863 The "--preserve-merges" option of "git rebase" has been removed.
864
839 - Will cook in 'next'.
865 + Will merge to 'master'.
866
867
842 -* ab/refs-errno-cleanup (2021-08-25) 4 commits
843 - - refs: make errno output explicit for refs_resolve_ref_unsafe
844 - - refs: explicitly return failure_errno from parse_loose_ref_contents
868 +* ab/refs-errno-cleanup (2021-10-14) 20 commits
869 + - refs API: post-migration API renaming [2/2]
870 + - refs API: post-migration API renaming [1/2]
871 + - refs API: don't expose "errno" in run_transaction_hook()
872 + - refs API: make expand_ref() & repo_dwim_log() not set errno
873 + - refs API: make resolve_ref_unsafe() not set errno
874 + - refs API: make refs_ref_exists() not set errno
875 + - refs API: make refs_resolve_refdup() not set errno
876 + - refs tests: ignore ignore errno in test-ref-store helper
877 + - refs API: ignore errno in worktree.c's find_shared_symref()
878 + - refs API: ignore errno in worktree.c's add_head_info()
879 + - refs API: make files_copy_or_rename_ref() et al not set errno
880 + - refs API: make loose_fill_ref_dir() not set errno
881 + - refs API: make resolve_gitlink_ref() not set errno
882 + - refs API: remove refs_read_ref_full() wrapper
883 + - refs/files: remove "name exist?" check in lock_ref_oid_basic()
884 + - refs API: make refs_rename_ref_available() static
885 + - refs API: make parse_loose_ref_contents() not set errno
886 + - refs API: make refs_read_raw_ref() not set errno
887 + - refs API: add a version of refs_resolve_ref_unsafe() with "errno"
888 - branch tests: test for errno propagating on failing read
846 - - refs: add failure_errno to refs_read_raw_ref() signature
889
890 The "remainder" of hn/refs-errno-cleanup topic.
891
892 + Breaks the build.
893 + cf. <xmqqh7djba6e.fsf@gitster.g>
894
851 -* ab/lib-subtest (2021-09-22) 9 commits
852 - (merged to 'next' on 2021-10-06 at e8fa261811)
853 - + test-lib tests: get rid of copy/pasted mock test code
854 - + test-lib tests: assert 1 exit code, not non-zero
855 - + test-lib tests: refactor common part of check_sub_test_lib_test*()
856 - + test-lib tests: avoid subshell for "test_cmp" for readability
857 - + test-lib tests: don't provide a description for the sub-tests
858 - + test-lib tests: split up "write and run" into two functions
859 - + test-lib tests: move "run_sub_test" to a new lib-subtest.sh
860 - + Merge branch 'ps/t0000-output-directory-fix' into ab/lib-subtest
861 - + Merge branch 'jk/t0000-subtests-fix' into ab/lib-subtest
862 -
863 - Updates to the tests in t0000 to test the test framework.
864 -
865 - Will merge to 'master'.
895
867 -
868 -* ab/only-single-progress-at-once (2021-09-22) 8 commits
896 +* ab/only-single-progress-at-once (2021-10-13) 10 commits
897 - progress.c: add & assert a "global_progress" variable
870 - - pack-bitmap-write.c: add a missing stop_progress()
898 + - various *.c: use isatty(1|2), not isatty(STDIN_FILENO|STDERR_FILENO)
899 + - pack-bitmap-write.c: don't return without stop_progress()
900 - progress.c: add temporary variable from progress struct
872 - - progress.c: stop eagerly fflush(stderr) when not a terminal
901 - progress.c: call progress_interval() from progress_test_force_update()
902 - progress.c: move signal handler functions lower
903 - progress.c tests: test some invalid usage
904 - progress.c tests: make start/stop verbs on stdin
905 + - progress.c test helper: add missing braces
906 + - leak tests: fix a memory leaks in "test-progress" helper
907
908 Further tweaks on progress API.
909
880 - Under review.
881 - cf. <20211010212949.GC571180@szeder.dev>
910 + Will merge to 'next'?
911
912
913 * fs/ssh-signing (2021-09-10) 9 commits
@@ -892,6 +921,7 @@ Release tarballs are available at:
921 + ssh signing: add ssh key format and signing code
922 + ssh signing: add test prereqs
923 + ssh signing: preliminary refactoring and clean-up
924 + (this branch is used by fs/ssh-signing-fix.)
925
926 Use ssh public crypto for object and push-cert signing.
927