What's cooking (2021/04 #02)

Junio C Hamano committed Apr 8, 2021 at 15:19 UTC 18b8aed3b3f6d0ae059cd17077225e147cdb52f0
1 file changed +486 -459
whats-cooking.txt
+486 -459
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2021, #01; Mon, 5)
4 -X-master-at: 2e36527f23b7f6ae15e6f21ac3b08bf3fed6ee48
5 -X-next-at: 78e8ed11b70d41228d2893cf13354187f8ca68ee
3 +Subject: What's cooking in git.git (Apr 2021, #02; Thu, 8)
4 +X-master-at: 89b43f80a514aee58b662ad606e6352e03eaeee4
5 +X-next-at: be11c130afeab11780014fb555625b10f13c8463
6
7 -What's cooking in git.git (Apr 2021, #01; Mon, 5)
7 +What's cooking in git.git (Apr 2021, #02; Thu, 8)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -43,55 +43,441 @@ Release tarballs are available at:
43 --------------------------------------------------
44 [Graduated to 'master']
45
46 -* jh/simple-ipc (2021-03-22) 12 commits
47 - (merged to 'next' on 2021-03-24 at 3ebcedf89a)
48 - + t0052: add simple-ipc tests and t/helper/test-simple-ipc tool
49 - + simple-ipc: add Unix domain socket implementation
50 - + unix-stream-server: create unix domain socket under lock
51 - + unix-socket: disallow chdir() when creating unix domain sockets
52 - + unix-socket: add backlog size option to unix_stream_listen()
53 - + unix-socket: eliminate static unix_stream_socket() helper function
54 - + simple-ipc: add win32 implementation
55 - + simple-ipc: design documentation for new IPC mechanism
56 - + pkt-line: add options argument to read_packetized_to_strbuf()
57 - + pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option
58 - + pkt-line: do not issue flush packets in write_packetized_*()
59 - + pkt-line: eliminate the need for static buffer in packet_write_gently()
60 - (this branch is used by jh/rfc-builtin-fsmonitor.)
61 -
62 - A simple IPC interface gets introduced to build services like
63 - fsmonitor on top.
64 -
65 -
66 -* mt/parallel-checkout-part-1 (2021-03-23) 9 commits
67 - (merged to 'next' on 2021-03-30 at e8995d1046)
68 - + entry: add checkout_entry_ca() taking preloaded conv_attrs
69 - + entry: move conv_attrs lookup up to checkout_entry()
70 - + entry: extract update_ce_after_write() from write_entry()
71 - + entry: make fstat_output() and read_blob_entry() public
72 - + entry: extract a header file for entry.c functions
73 - + convert: add classification for conv_attrs struct
74 - + convert: add get_stream_filter_ca() variant
75 - + convert: add [async_]convert_to_working_tree_ca() variants
76 - + convert: make convert_attrs() and convert structs public
77 - (this branch is used by mt/parallel-checkout-part-2.)
78 -
79 - Originally merged to 'next' on 2021-03-21
80 -
81 - Preparatory API changes for parallel checkout.
82 -
83 -
84 -* zh/format-patch-fractional-reroll-count (2021-03-23) 1 commit
85 - (merged to 'next' on 2021-03-26 at 3c29ec9a02)
86 - + format-patch: allow a non-integral version numbers
87 -
88 - "git format-patch -v<n>" learned to allow a reroll count that is
89 - not an integer.
46 +* ab/fsck-api-cleanup (2021-03-28) 19 commits
47 + (merged to 'next' on 2021-03-31 at 30c3303dba)
48 + + fetch-pack: use new fsck API to printing dangling submodules
49 + + fetch-pack: use file-scope static struct for fsck_options
50 + + fetch-pack: don't needlessly copy fsck_options
51 + + fsck.c: move gitmodules_{found,done} into fsck_options
52 + + fsck.c: add an fsck_set_msg_type() API that takes enums
53 + + fsck.c: pass along the fsck_msg_id in the fsck_error callback
54 + + fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h
55 + + fsck.c: give "FOREACH_MSG_ID" a more specific name
56 + + fsck.c: undefine temporary STR macro after use
57 + + fsck.c: call parse_msg_type() early in fsck_set_msg_type()
58 + + fsck.h: re-order and re-assign "enum fsck_msg_type"
59 + + fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
60 + + fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"
61 + + fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
62 + + fsck.c: remove (mostly) redundant append_msg_id() function
63 + + fsck.c: rename variables in fsck_set_msg_type() for less confusion
64 + + fsck.h: use "enum object_type" instead of "int"
65 + + fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}
66 + + fsck.c: refactor and rename common config callback
67 +
68 + Fsck API clean-up.
69 +
70 +
71 +* ab/make-tags-quiet (2021-04-01) 1 commit
72 + (merged to 'next' on 2021-04-01 at 9ea45b61b8)
73 + + Makefile: add QUIET_GEN to "tags" and "TAGS" targets
74 +
75 + Generate [ec]tags under $(QUIET_GEN).
76 +
77 +
78 +* ah/plugleaks (2021-03-21) 9 commits
79 + (merged to 'next' on 2021-03-30 at 78636ede89)
80 + + transport: also free remote_refs in transport_disconnect()
81 + + parse-options: don't leak alias help messages
82 + + parse-options: convert bitfield values to use binary shift
83 + + init-db: silence template_dir leak when converting to absolute path
84 + + init: remove git_init_db_config() while fixing leaks
85 + + worktree: fix leak in dwim_branch()
86 + + clone: free or UNLEAK further pointers when finished
87 + + reset: free instead of leaking unneeded ref
88 + + symbolic-ref: don't leak shortened refname in check_symref()
89 +
90 + Plug or annotate remaining leaks that trigger while running the
91 + very basic set of tests.
92 +
93 +
94 +* cc/downcase-opt-help (2021-03-29) 1 commit
95 + (merged to 'next' on 2021-03-31 at 0df5c647b9)
96 + + column, range-diff: downcase option description
97 +
98 + A few option description strings started with capital letters,
99 + which were corrected.
100 +
101 +
102 +* ds/clarify-hashwrite (2021-03-26) 1 commit
103 + (merged to 'next' on 2021-03-30 at 701f5c0696)
104 + + csum-file: make hashwrite() more readable
105 +
106 + The hashwrite() API uses a buffering mechanism to avoid calling
107 + write(2) too frequently. This logic has been refactored to be
108 + easier to understand.
109 +
110 +
111 +* en/ort-perf-batch-9 (2021-03-10) 8 commits
112 + (merged to 'next' on 2021-04-01 at cc5254aadc)
113 + + diffcore-rename: avoid doing basename comparisons for irrelevant sources
114 + + merge-ort: skip rename detection entirely if possible
115 + + merge-ort: use relevant_sources to filter possible rename sources
116 + + merge-ort: precompute whether directory rename detection is needed
117 + + merge-ort: introduce wrappers for alternate tree traversal
118 + + merge-ort: add data structures for an alternate tree traversal
119 + + merge-ort: precompute subset of sources for which we need rename detection
120 + + diffcore-rename: enable filtering possible rename sources
121 + (this branch is used by en/ort-perf-batch-10, en/ort-perf-batch-11 and en/ort-readiness.)
122 +
123 + The ort merge backend has been optimized by skipping irrelevant
124 + renames.
125 +
126 +
127 +* en/sequencer-edit-upon-conflict-fix (2021-03-31) 1 commit
128 + (merged to 'next' on 2021-04-01 at 2e3c705a73)
129 + + sequencer: fix edit handling for cherry-pick and revert messages
130 +
131 + "git cherry-pick/revert" with or without "--[no-]edit" did not spawn
132 + the editor as expected (e.g. "revert --no-edit" after a conflict
133 + still asked to edit the message), which has been corrected.
134 +
135 +
136 +* js/cmake-vsbuild (2021-03-29) 4 commits
137 + (merged to 'next' on 2021-03-31 at e0c4369f65)
138 + + cmake(install): include vcpkg dlls
139 + + cmake: add a preparatory work-around to accommodate `vcpkg`
140 + + cmake(install): fix double .exe suffixes
141 + + cmake: support SKIP_DASHED_BUILT_INS
142 +
143 + CMake update for vsbuild.
144 +
145 +
146 +* js/security-md (2021-03-27) 2 commits
147 + (merged to 'next' on 2021-03-31 at 28f64fee38)
148 + + Document how we do embargoed releases
149 + + SECURITY: describe how to report vulnerabilities
150 +
151 + SECURITY.md that is facing individual contributors and end users
152 + has been introduced. Also a procedure to follow when preparing
153 + embargoed releases has been spelled out.
154 +
155 +
156 +* ll/clone-reject-shallow (2021-04-01) 1 commit
157 + (merged to 'next' on 2021-04-01 at 9b13372e1a)
158 + + builtin/clone.c: add --reject-shallow option
159 +
160 + "git clone --reject-shallow" option fails the clone as soon as we
161 + notice that we are cloning from a shallow repository.
162 +
163 +
164 +* ps/pack-bitmap-optim (2021-03-22) 1 commit
165 + (merged to 'next' on 2021-03-31 at 12bb775d9a)
166 + + pack-bitmap: avoid traversal of objects referenced by uninteresting tag
167 +
168 + Optimize "rev-list --use-bitmap-index --objects" corner case that
169 + uses negative tags as the stopping points.
170 +
171 +
172 +* rs/daemon-sanitize-dir-sep (2021-03-26) 1 commit
173 + (merged to 'next' on 2021-04-01 at c8f43b1c8d)
174 + + daemon: sanitize all directory separators
175 +
176 + "git daemon" has been tightened against systems that take backslash
177 + as directory separator.
178 +
179 +
180 +* tb/reverse-midx (2021-04-01) 17 commits
181 + (merged to 'next' on 2021-04-01 at 17c9542606)
182 + + midx.c: improve cache locality in midx_pack_order_cmp()
183 + + pack-revindex: write multi-pack reverse indexes
184 + + pack-write.c: extract 'write_rev_file_order'
185 + + pack-revindex: read multi-pack reverse indexes
186 + + Documentation/technical: describe multi-pack reverse indexes
187 + + midx: make some functions non-static
188 + + midx: keep track of the checksum
189 + + midx: don't free midx_name early
190 + + midx: allow marking a pack as preferred
191 + + t/helper/test-read-midx.c: add '--show-objects'
192 + + builtin/multi-pack-index.c: display usage on unrecognized command
193 + + builtin/multi-pack-index.c: don't enter bogus cmd_mode
194 + + builtin/multi-pack-index.c: split sub-commands
195 + + builtin/multi-pack-index.c: define common usage with a macro
196 + + builtin/multi-pack-index.c: don't handle 'progress' separately
197 + + builtin/multi-pack-index.c: inline 'flags' with options
198 + + Merge branch 'ds/chunked-file-api' into tb/reverse-midx
199 +
200 + An on-disk reverse-index to map the in-pack location of an object
201 + back to its object name across multiple packfiles is introduced.
202 +
203 +
204 +* zh/commit-trailer (2021-03-23) 1 commit
205 + (merged to 'next' on 2021-03-31 at f17d196ee1)
206 + + commit: add --trailer option
207 + (this branch is used by zh/trailer-cmd.)
208 +
209 + "git commit" learned "--trailer <key>[=<value>]" option; together
210 + with the interpret-trailers command, this will make it easier to
211 + support custom trailers.
212 +
213 +--------------------------------------------------
214 +[Stalled]
215 +
216 +* dl/complete-stash (2021-03-24) 3 commits
217 + (merged to 'next' on 2021-03-24 at ce573a99cc)
218 + + git-completion.bash: use __gitcomp_builtin() in _git_stash()
219 + + git-completion.bash: extract from else in _git_stash()
220 + + git-completion.bash: pass $__git_subcommand_idx from __git_main()
221 +
222 + Update "git stash branch<TAB>" command line completion (in contrib/).
223 +
224 + On hold. Probably needs either a reroll or incremental refinements.
225 + cf. <20210327183554.GD2271@szeder.dev>
226 +
227 +
228 +* ag/merge-strategies-in-c (2021-03-17) 15 commits
229 + - sequencer: use the "octopus" merge strategy without forking
230 + - sequencer: use the "resolve" strategy without forking
231 + - merge: use the "octopus" strategy without forking
232 + - merge: use the "resolve" strategy without forking
233 + - merge-octopus: rewrite in C
234 + - merge-recursive: move better_branch_name() to merge.c
235 + - merge-resolve: rewrite in C
236 + - merge-one-file: rewrite in C
237 + - update-index: move add_cacheinfo() to read-cache.c
238 + - merge-index: add a new way to invoke `git-merge-one-file'
239 + - merge-index: drop the index
240 + - merge-index: libify merge_one_path() and merge_all()
241 + - t6060: add tests for removed files
242 + - t6060: modify multiple files to expose a possible issue with merge-index
243 + - t6407: modernise tests
244 +
245 + The resolve and octopus merge strategy backends have been rewritten
246 + in C.
247 +
248 + Expecting a (hopefully final) reroll.
249 + cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>
250 +
251 +
252 +* ab/unexpected-object-type (2021-03-27) 10 commits
253 + - tag: don't misreport type of tagged objects in errors
254 + - object tests: add test for unexpected objects in tags
255 + - object.c: add and use oid_is_type_or_die_msg() function
256 + - object.c: add a utility function for "expected type X, got Y"
257 + - tree.c: fix misindentation in parse_tree_gently()
258 + - object-name.c: make dependency on object_type order more obvious
259 + - object-file.c: make oid_object_info() return "enum object_type"
260 + - object.c: make type_from_string() return "enum object_type"
261 + - object.c: refactor type_from_string_gently()
262 + - object.c: stop supporting len == -1 in type_from_string_gently()
263 +
264 + Error reporting upon object type mismatch has been improved
265 +
266 + Expecting a reroll.
267 + cf. <YGBL88lYheyFmwCg@coredump.intra.peff.net>
268 + ... we would be much better off to say something like "somebody
269 + expected X to be a commit, but now somebody else expects it to be a
270 + blob", which is all that we can reliably say.
271 +
272 +
273 +* ab/describe-tests-fix (2021-03-01) 10 commits
274 + - test-lib: return 1 from test_expect_{success,failure}
275 + - svn tests: refactor away a "set -e" in test body
276 + - svn tests: remove legacy re-setup from init-clone test
277 + - describe tests: support -C in "check_describe"
278 + - describe tests: fix nested "test_expect_success" call
279 + - describe tests: convert setup to use test_commit
280 + - test-lib functions: add an --annotated-tag option to "test_commit"
281 + - describe tests: always assert empty stderr from "describe"
282 + - describe tests: refactor away from glob matching
283 + - describe tests: improve test for --work-tree & --dirty
284 +
285 + Various updates to tests around "git describe"
286 +
287 + Expecting a reroll.
288 + cf. <xmqq1rcj6hzr.fsf@gitster.g>
289 +
290 +
291 +* ab/pickaxe-pcre2 (2021-02-18) 24 commits
292 + - pickaxe -G: don't special-case create/delete
293 + - pickaxe -G: terminate early on matching lines
294 + - xdiff-interface: support early exit in xdiff_outf()
295 + - xdiff-interface: allow early return from xdiff_emit_{line,hunk}_fn
296 + - pickaxe -S: slightly optimize contains()
297 + - pickaxe: rename variables in has_changes() for brevity
298 + - pickaxe -S: support content with NULs under --pickaxe-regex
299 + - pickaxe: assert that we must have a needle under -G or -S
300 + - pickaxe: refactor function selection in diffcore-pickaxe()
301 + - perf: add performance test for pickaxe
302 + - pickaxe/style: consolidate declarations and assignments
303 + - diff.h: move pickaxe fields together again
304 + - pickaxe: die when --find-object and --pickaxe-all are combined
305 + - pickaxe: die when -G and --pickaxe-regex are combined
306 + - pickaxe tests: test for -G, -S and --find-object incompatibility
307 + - pickaxe tests: add test for "log -S" not being a regex
308 + - pickaxe tests: add test for diffgrep_consume() internals
309 + - pickaxe tests: refactor to use test_commit --append --printf
310 + - test-lib functions: add --printf option to test_commit
311 + - test-lib-functions: reword "test_commit --append" docs
312 + - test-lib-functions: document and test test_commit --no-tag
313 + - grep/pcre2 tests: reword comments referring to kwset
314 + - Merge branch 'jk/rev-list-disk-usage' into ab/pickaxe-pcre2
315 + - Merge branch 'ab/test-lib' into ab/pickaxe-pcre2
316 +
317 + Rewrite the backend for "diff -G/-S" to use pcre2 engine when
318 + available.
319 +
320 + Needs (hopefully the final round of) reroll and its review.
321 + cf. <xmqqh7ksb5j7.fsf@gitster.g>, <xmqqa6qkb5fi.fsf@gitster.g>, etc.
322 +
323 +
324 +* es/config-hooks (2021-03-10) 36 commits
325 + . run-command: stop thinking about hooks
326 + . git-send-email: use 'git hook run' for 'sendemail-validate'
327 + . bugreport: use hook_exists instead of find_hook
328 + . receive-pack: convert receive hooks to hook.h
329 + . post-update: use hook.h library
330 + . proc-receive: acquire hook list from hook.h
331 + . receive-pack: convert 'update' hook to hook.h
332 + . reference-transaction: look for hooks in config
333 + . transport: convert pre-push hook to use config
334 + . hook: convert 'post-rewrite' hook to config
335 + . hooks: convert 'post-checkout' hook to hook library
336 + . git-p4: use 'git hook' to run hooks
337 + . receive-pack: convert push-to-checkout hook to hook.h
338 + . read-cache: convert post-index-change hook to use config
339 + . rebase: teach pre-rebase to use hook.h
340 + . gc: use hook library for pre-auto-gc hook
341 + . merge: use config-based hooks for post-merge hook
342 + . am: convert applypatch hooks to use config
343 + . commit: use config-based hooks
344 + . hooks: allow callers to capture output
345 + . run-command: allow capturing of collated output
346 + . hook: provide stdin by string_list or callback
347 + . run-command: add stdin callback for parallelization
348 + . hook: allow specifying working directory for hooks
349 + . hook: allow parallel hook execution
350 + . run-command: allow stdin for run_processes_parallel
351 + . hook: support passing stdin to hooks
352 + . hook: introduce hook_exists()
353 + . hook: add 'run' subcommand
354 + . parse-options: parse into strvec
355 + . hook: implement hookcmd.<name>.skip
356 + . hook: teach hook.runHookDir
357 + . hook: include hookdir hook in list
358 + . hook: add list command
359 + . hook: scaffolding for git-hook subcommand
360 + . doc: propose hooks managed by the config
361 +
362 + The "hooks defined in config" topic.
363
364 --------------------------------------------------
365 [New Topics]
366
94 -* jh/rfc-builtin-fsmonitor (2021-04-01) 24 commits
367 +* cc/test-helper-bloom-usage-fix (2021-04-05) 1 commit
368 + (merged to 'next' on 2021-04-06 at 4895f33fee)
369 + + test-bloom: fix missing 'bloom' from usage string
370 +
371 + Usage message fix for a test helper.
372 +
373 + Will merge to 'master'.
374 +
375 +
376 +* jz/apply-run-3way-first (2021-04-06) 1 commit
377 + - git-apply: try threeway first when "--3way" is used
378 + (this branch is used by jz/apply-3way-cached.)
379 +
380 + "git apply --3way" has always been "to fall back to 3-way merge
381 + only when straight application fails". Swap the order of falling
382 + back so that 3-way is always attempted first (only when the option
383 + is given, of course) and then straight patch application is used as
384 + a fallback when it fails.
385 +
386 + Will merge to 'next'.
387 +
388 +
389 +* ds/maintenance-prefetch-fix (2021-04-06) 5 commits
390 + - maintenance: allow custom refspecs during prefetch
391 + - test-tool: test refspec input/output
392 + - refspec: output a refspec item
393 + - test-lib: use exact match for test_subcommand
394 + - maintenance: simplify prefetch logic
395 +
396 + The prefetch task in "git maintenance" assumed that "git fetch"
397 + from any remote would fetch all its local branches, which would
398 + fetch too much if the user is interested in only a subset of
399 + branches there.
400 +
401 + Expecting a reroll.
402 + cf. <35fa99cf-ba24-f13e-0607-f9acce2905cf@gmail.com>
403 +
404 +
405 +* ab/complete-cherry-pick-head (2021-04-07) 1 commit
406 + - bash completion: complete CHERRY_PICK_HEAD
407 +
408 + The command line completion (in contrib/) has learned that
409 + CHERRY_PICK_HEAD is a possible pseudo-ref.
410 +
411 + Will merge to 'next'?
412 +
413 +
414 +* mr/bisect-in-c-4 (2021-04-07) 4 commits
415 + - bisect--helper: retire `--bisect-next-check` subcommand
416 + - bisect--helper: reimplement `bisect_run` shell function in C
417 + - bisect--helper: reimplement `bisect_visualize()`shell function in C
418 + - run-command: make `exists_in_PATH()` non-static
419 +
420 + The codepaths involved in running "git bisect visualize" and "git
421 + bisect run" has been rewritten in C.
422 +
423 + Expecting a reroll.
424 + cf. <xmqqo8epydwx.fsf@gitster.g>, <xmqqeeflycf9.fsf@gitster.g>
425 +
426 +
427 +* ab/detox-config-gettext (2021-04-08) 1 commit
428 + - config.c: remove last remnant of GIT_TEST_GETTEXT_POISON
429 +
430 + The last remnant of gettext-poison has been removed.
431 +
432 + Will merge to 'next'.
433 +
434 +
435 +* jz/apply-3way-cached (2021-04-07) 1 commit
436 + - git-apply: allow simultaneous --cached and --3way options
437 + (this branch uses jz/apply-run-3way-first.)
438 +
439 + "git apply" now takes "--3way" and "--cached" at the same time, and
440 + work and record results only in the index.
441 +
442 + Will merge to 'next'.
443 +
444 +
445 +* vs/completion-with-set-u (2021-04-08) 1 commit
446 + - completion: audit and guard $GIT_* against unset use
447 +
448 + The command-line completion script (in contrib/) had a couple of
449 + references that would have given a warning under the "-u" (nounset)
450 + option.
451 +
452 + Will merge to 'next'.
453 +
454 +
455 +* sg/bugreport-fixes (2021-04-08) 1 commit
456 + - Makefile: add missing dependencies of 'config-list.h'
457 +
458 + The dependencies for config-list.h and command-list.h were broken
459 + when the former was split out of the latter, which has been
460 + corrected.
461 +
462 + Will merge to 'next'.
463 +
464 +--------------------------------------------------
465 +[Cooking]
466 +
467 +* mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits
468 + - rm: honor sparse checkout patterns
469 + - add: warn when asked to update SKIP_WORKTREE entries
470 + - refresh_index(): add flag to ignore SKIP_WORKTREE entries
471 + - pathspec: allow to ignore SKIP_WORKTREE entries on index matching
472 + - add: make --chmod and --renormalize honor sparse checkouts
473 + - t3705: add tests for `git add` in sparse checkouts
474 + - add: include magic part of pathspec on --refresh error
475 +
476 + "git add" and "git rm" learned not to touch those paths that are
477 + outside of sparse checkout.
478 +
479 +
480 +* jh/rfc-builtin-fsmonitor (2021-04-08) 23 commits
481 - t7527: test status with untracked-cache and fsmonitor--daemon
482 - p7519: add fsmonitor--daemon
483 - t7527: create test for fsmonitor--daemon
@@ -114,7 +500,6 @@ Release tarballs are available at:
500 - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC
501 - config: FSMonitor is repository-specific
502 - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
117 - - fsmonitor--daemon: man page and documentation
503 - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor
504
505
@@ -152,7 +537,6 @@ Release tarballs are available at:
537
538 * zh/trailer-cmd (2021-04-02) 1 commit
539 - trailer: add new trailer.<token>.cmd config option
155 - (this branch uses zh/commit-trailer.)
540
541 The way the command line specified by the trailer.<token>.command
542 configuration variable receives the end-user supplied value was
@@ -160,7 +544,8 @@ Release tarballs are available at:
544 same goal in a safer and more intuitive way has been added, as
545 the trailer.<token>.cmd configuration variable, to replace it.
546
163 - Seems to break new tests for .command variant in zh/commit-trailer.
547 + Expecting a reroll.
548 + cf. <CAP8UFD08Lagij6oqpOJkpbzMLRgQ08=mDfiyf1qXyD5VW6Ae7A@mail.gmail.com>
549
550
551 * fm/user-manual-use-preface (2021-04-03) 1 commit
@@ -172,17 +557,17 @@ Release tarballs are available at:
557 Will merge to 'master'.
558
559
175 -* ab/send-email-validate-errors (2021-04-05) 3 commits
176 - - git-send-email: improve --validate error output
177 - - git-send-email: test full --validate output
178 - - git-send-email: refactor duplicate $? checks into a function
560 +* ab/send-email-validate-errors (2021-04-06) 3 commits
561 + (merged to 'next' on 2021-04-06 at d7fb1dbde0)
562 + + git-send-email: improve --validate error output
563 + + git-send-email: refactor duplicate $? checks into a function
564 + + git-send-email: test full --validate output
565 (this branch uses ab/perl-do-not-abuse-map.)
566
567 Clean-up codepaths that implements "git send-email --validate"
568 option and improves the message from it.
569
184 - Expecting a reroll.
185 - cf. <xmqqmtuc5yx7.fsf@gitster.g>
570 + Will merge to 'master'.
571
572
573 * tb/precompose-prefix-simplify (2021-04-05) 2 commits
@@ -195,22 +580,8 @@ Release tarballs are available at:
580
581 Will merge to 'master'.
582
198 ---------------------------------------------------
199 -[Cooking]
200 -
201 -* zh/commit-trailer (2021-03-23) 1 commit
202 - (merged to 'next' on 2021-03-31 at f17d196ee1)
203 - + commit: add --trailer option
204 - (this branch is used by zh/trailer-cmd.)
205 -
206 - "git commit" learned "--trailer <key>[=<value>]" option; together
207 - with the interpret-trailers command, this will make it easier to
208 - support custom trailers.
209 -
210 - Will merge to 'master'.
211 -
583
213 -* ab/userdiff-tests (2021-03-23) 10 commits
584 +* ab/userdiff-tests (2021-04-08) 9 commits
585 - blame tests: simplify userdiff driver test
586 - blame tests: don't rely on t/t4018/ directory
587 - userdiff: remove support for "broken" tests
@@ -220,98 +591,19 @@ Release tarballs are available at:
591 - userdiff style: normalize pascal regex declaration
592 - userdiff style: declare patterns with consistent style
593 - userdiff style: re-order drivers in alphabetical order
223 - - userdiff: refactor away the parse_bool() function
594
595 A bit of code clean-up and a lot of test clean-up around userdiff
596 area.
597
228 - A reroll promised "at some point".
229 - cf. <87im5gp2ze.fsf@evledraar.gmail.com>
230 -
231 -
232 -* ds/clarify-hashwrite (2021-03-26) 1 commit
233 - (merged to 'next' on 2021-03-30 at 701f5c0696)
234 - + csum-file: make hashwrite() more readable
598 + Will merge to 'next'?
599
236 - The hashwrite() API always resulted in a call to write(2), even
237 - when writing a small amount of bytes that would still fit in the
238 - internal buffer held by the hashfile struct. It has been updated
239 - to delay the writing until the buffer is filled or the hashfile
240 - concluded for performance.
600
242 - Will merge to 'master'.
243 -
244 -
245 -* rs/daemon-sanitize-dir-sep (2021-03-26) 1 commit
246 - (merged to 'next' on 2021-04-01 at c8f43b1c8d)
247 - + daemon: sanitize all directory separators
248 -
249 - "git daemon" has been tightened against systems that take backslash
250 - as directory separator.
251 -
252 - Will merge to 'master'.
253 -
254 -
255 -* ar/userdiff-scheme (2021-03-27) 1 commit
601 +* ar/userdiff-scheme (2021-04-08) 1 commit
602 - userdiff: add support for Scheme
603
604 Userdiff patterns for "Scheme" has been added.
605
260 - Expecting a reroll.
261 -
262 -
263 -* js/cmake-vsbuild (2021-03-29) 4 commits
264 - (merged to 'next' on 2021-03-31 at e0c4369f65)
265 - + cmake(install): include vcpkg dlls
266 - + cmake: add a preparatory work-around to accommodate `vcpkg`
267 - + cmake(install): fix double .exe suffixes
268 - + cmake: support SKIP_DASHED_BUILT_INS
269 -
270 - CMake update for vsbuild.
271 -
272 - Will merge to 'master'.
273 -
274 -
275 -* js/security-md (2021-03-27) 2 commits
276 - (merged to 'next' on 2021-03-31 at 28f64fee38)
277 - + Document how we do embargoed releases
278 - + SECURITY: describe how to report vulnerabilities
279 -
280 - SECURITY.md that is facing individual contributors and end users
281 - has been introduced. Also a procedure to follow when preparing
282 - embargoed releases has been spelled out.
283 -
284 - Will merge to 'master'.
285 -
286 -
287 -* ab/make-tags-quiet (2021-04-01) 1 commit
288 - (merged to 'next' on 2021-04-01 at 9ea45b61b8)
289 - + Makefile: add QUIET_GEN to "tags" and "TAGS" targets
290 -
291 - Generate [ec]tags under $(QUIET_GEN).
292 -
293 - Will merge to 'master'.
294 -
295 -
296 -* cc/downcase-opt-help (2021-03-29) 1 commit
297 - (merged to 'next' on 2021-03-31 at 0df5c647b9)
298 - + column, range-diff: downcase option description
299 -
300 - A few option description strings started with capital letters,
301 - which were corrected.
302 -
303 - Will merge to 'master'.
304 -
305 -
306 -* en/sequencer-edit-upon-conflict-fix (2021-03-31) 1 commit
307 - (merged to 'next' on 2021-04-01 at 2e3c705a73)
308 - + sequencer: fix edit handling for cherry-pick and revert messages
309 -
310 - "git cherry-pick/revert" with or without "--[no-]edit" did not spawn
311 - the editor as expected (e.g. "revert --no-edit" after a conflict
312 - still asked to edit the message), which has been corrected.
313 -
314 - Will merge to 'master'.
606 + Will merge to 'next'?
607
608
609 * gk/gitweb-redacted-email (2021-03-31) 1 commit
@@ -324,38 +616,29 @@ Release tarballs are available at:
616 cf. <xmqq5z19k9wu.fsf@gitster.g>
617
618
327 -* ll/clone-reject-shallow (2021-04-01) 1 commit
328 - (merged to 'next' on 2021-04-01 at 9b13372e1a)
329 - + builtin/clone.c: add --reject-shallow option
330 -
331 - "git clone --reject-shallow" option fails the clone as soon as we
332 - notice that we are cloning from a shallow repository.
333 -
334 - Will merge to 'master'.
335 -
336 -
619 * ds/sparse-index (2021-03-30) 21 commits
338 - - p2000: add sparse-index repos
339 - - sparse-index: loose integration with cache_tree_verify()
340 - - cache-tree: integrate with sparse directory entries
341 - - sparse-checkout: disable sparse-index
342 - - sparse-checkout: toggle sparse index from builtin
343 - - sparse-index: add index.sparse config option
344 - - sparse-index: check index conversion happens
345 - - unpack-trees: allow sparse directories
346 - - submodule: sparse-index should not collapse links
347 - - sparse-index: convert from full to sparse
348 - - sparse-index: add 'sdir' index extension
349 - - sparse-checkout: hold pattern list in index
350 - - unpack-trees: ensure full index
351 - - test-tool: don't force full index
352 - - test-read-cache: print cache entries with --table
353 - - t1092: compare sparse-checkout to sparse-index
354 - - sparse-index: implement ensure_full_index()
355 - - sparse-index: add guard to ensure full index
356 - - t1092: clean up script quoting
357 - - t/perf: add performance test for sparse operations
358 - - sparse-index: design doc and format update
620 + (merged to 'next' on 2021-04-07 at f1290a7929)
621 + + p2000: add sparse-index repos
622 + + sparse-index: loose integration with cache_tree_verify()
623 + + cache-tree: integrate with sparse directory entries
624 + + sparse-checkout: disable sparse-index
625 + + sparse-checkout: toggle sparse index from builtin
626 + + sparse-index: add index.sparse config option
627 + + sparse-index: check index conversion happens
628 + + unpack-trees: allow sparse directories
629 + + submodule: sparse-index should not collapse links
630 + + sparse-index: convert from full to sparse
631 + + sparse-index: add 'sdir' index extension
632 + + sparse-checkout: hold pattern list in index
633 + + unpack-trees: ensure full index
634 + + test-tool: don't force full index
635 + + test-read-cache: print cache entries with --table
636 + + t1092: compare sparse-checkout to sparse-index
637 + + sparse-index: implement ensure_full_index()
638 + + sparse-index: add guard to ensure full index
639 + + t1092: clean up script quoting
640 + + t/perf: add performance test for sparse operations
641 + + sparse-index: design doc and format update
642 (this branch is used by ds/sparse-index-protections.)
643
644 Both in-core and on-disk index has been updated to optionally omit
@@ -363,39 +646,28 @@ Release tarballs are available at:
646 corresponds to the directory that contains them when the "cone"
647 mode of sparse checkout is in use.
648
649 + On hold, waiting for the "protections" topic to stablize.
650 +
651
652 * en/ort-perf-batch-10 (2021-03-18) 8 commits
368 - - diffcore-rename: determine which relevant_sources are no longer relevant
369 - - merge-ort: record the reason that we want a rename for a file
370 - - diffcore-rename: add computation of number of unknown renames
371 - - diffcore-rename: check if we have enough renames for directories early on
372 - - diffcore-rename: only compute dir_rename_count for relevant directories
373 - - merge-ort: record the reason that we want a rename for a directory
374 - - merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type
375 - - diffcore-rename: take advantage of "majority rules" to skip more renames
376 - (this branch is used by en/ort-perf-batch-11 and en/ort-readiness; uses en/ort-perf-batch-9.)
653 + (merged to 'next' on 2021-04-07 at 9826d89311)
654 + + diffcore-rename: determine which relevant_sources are no longer relevant
655 + + merge-ort: record the reason that we want a rename for a file
656 + + diffcore-rename: add computation of number of unknown renames
657 + + diffcore-rename: check if we have enough renames for directories early on
658 + + diffcore-rename: only compute dir_rename_count for relevant directories
659 + + merge-ort: record the reason that we want a rename for a directory
660 + + merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type
661 + + diffcore-rename: take advantage of "majority rules" to skip more renames
662 + (this branch is used by en/ort-perf-batch-11 and en/ort-readiness.)
663
664 Various rename detection optimization to help "ort" merge strategy
665 backend.
666
381 -
382 -* mt/add-rm-in-sparse-checkout (2021-03-18) 7 commits
383 - - rm: honor sparse checkout patterns
384 - - add: warn when asked to update SKIP_WORKTREE entries
385 - - refresh_index(): add REFRESH_DONT_MARK_SPARSE_MATCHES flag
386 - - pathspec: allow to ignore SKIP_WORKTREE entries on index matching
387 - - add: make --chmod and --renormalize honor sparse checkouts
388 - - t3705: add tests for `git add` in sparse checkouts
389 - - add: include magic part of pathspec on --refresh error
390 -
391 - "git add" and "git rm" learned not to touch those paths that are
392 - outside of sparse checkout.
393 -
394 - Expecting a reroll.
395 - cf. <xmqqlfajnn6w.fsf@gitster.g>
667 + Will merge to 'master'.
668
669
398 -* mt/parallel-checkout-part-2 (2021-03-23) 5 commits
670 +* mt/parallel-checkout-part-2 (2021-04-08) 5 commits
671 - parallel-checkout: add design documentation
672 - parallel-checkout: support progress displaying
673 - parallel-checkout: add configuration options
@@ -403,28 +675,6 @@ Release tarballs are available at:
675 - unpack-trees: add basic support for parallel checkout
676
677
406 -* ps/pack-bitmap-optim (2021-03-22) 1 commit
407 - (merged to 'next' on 2021-03-31 at 12bb775d9a)
408 - + pack-bitmap: avoid traversal of objects referenced by uninteresting tag
409 -
410 - Optimize "rev-list --use-bitmap-index --objects" corner case that
411 - uses negative tags as the stopping points.
412 -
413 - Will merge to 'master'.
414 -
415 -
416 -* dl/complete-stash (2021-03-24) 3 commits
417 - (merged to 'next' on 2021-03-24 at ce573a99cc)
418 - + git-completion.bash: use __gitcomp_builtin() in _git_stash()
419 - + git-completion.bash: extract from else in _git_stash()
420 - + git-completion.bash: pass $__git_subcommand_idx from __git_main()
421 -
422 - Update "git stash branch<TAB>" command line completion (in contrib/).
423 -
424 - On hold. Probably needs either a reroll or incremental refinements.
425 - cf. <20210327183554.GD2271@szeder.dev>
426 -
427 -
678 * ds/sparse-index-protections (2021-03-31) 25 commits
679 - name-hash: use expand_to_path()
680 - sparse-index: expand_to_path()
@@ -472,79 +722,12 @@ Release tarballs are available at:
722 - merge-ort: have ll_merge() use a special attr_index for renormalization
723 - merge-ort: add a special minimal index just for renormalization
724 - merge-ort: use STABLE_QSORT instead of QSORT where required
475 - (this branch is used by en/ort-perf-batch-11; uses en/ort-perf-batch-10 and en/ort-perf-batch-9.)
725 + (this branch is used by en/ort-perf-batch-11; uses en/ort-perf-batch-10.)
726
727 Plug the ort merge backend throughout the rest of the system, and
728 start testing it as a replacement for the recursive backend.
729
480 -
481 -* ag/merge-strategies-in-c (2021-03-17) 15 commits
482 - - sequencer: use the "octopus" merge strategy without forking
483 - - sequencer: use the "resolve" strategy without forking
484 - - merge: use the "octopus" strategy without forking
485 - - merge: use the "resolve" strategy without forking
486 - - merge-octopus: rewrite in C
487 - - merge-recursive: move better_branch_name() to merge.c
488 - - merge-resolve: rewrite in C
489 - - merge-one-file: rewrite in C
490 - - update-index: move add_cacheinfo() to read-cache.c
491 - - merge-index: add a new way to invoke `git-merge-one-file'
492 - - merge-index: drop the index
493 - - merge-index: libify merge_one_path() and merge_all()
494 - - t6060: add tests for removed files
495 - - t6060: modify multiple files to expose a possible issue with merge-index
496 - - t6407: modernise tests
497 -
498 - The resolve and octopus merge strategy backends have been rewritten
499 - in C.
500 -
501 - Expecting a (hopefully final) reroll.
502 - cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>
503 -
504 -
505 -* ab/fsck-api-cleanup (2021-03-28) 19 commits
506 - (merged to 'next' on 2021-03-31 at 30c3303dba)
507 - + fetch-pack: use new fsck API to printing dangling submodules
508 - + fetch-pack: use file-scope static struct for fsck_options
509 - + fetch-pack: don't needlessly copy fsck_options
510 - + fsck.c: move gitmodules_{found,done} into fsck_options
511 - + fsck.c: add an fsck_set_msg_type() API that takes enums
512 - + fsck.c: pass along the fsck_msg_id in the fsck_error callback
513 - + fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h
514 - + fsck.c: give "FOREACH_MSG_ID" a more specific name
515 - + fsck.c: undefine temporary STR macro after use
516 - + fsck.c: call parse_msg_type() early in fsck_set_msg_type()
517 - + fsck.h: re-order and re-assign "enum fsck_msg_type"
518 - + fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
519 - + fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"
520 - + fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
521 - + fsck.c: remove (mostly) redundant append_msg_id() function
522 - + fsck.c: rename variables in fsck_set_msg_type() for less confusion
523 - + fsck.h: use "enum object_type" instead of "int"
524 - + fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}
525 - + fsck.c: refactor and rename common config callback
526 -
527 - Fsck API clean-up.
528 -
529 - Will merge to 'master'.
530 -
531 -
532 -* en/ort-perf-batch-9 (2021-03-10) 8 commits
533 - (merged to 'next' on 2021-04-01 at cc5254aadc)
534 - + diffcore-rename: avoid doing basename comparisons for irrelevant sources
535 - + merge-ort: skip rename detection entirely if possible
536 - + merge-ort: use relevant_sources to filter possible rename sources
537 - + merge-ort: precompute whether directory rename detection is needed
538 - + merge-ort: introduce wrappers for alternate tree traversal
539 - + merge-ort: add data structures for an alternate tree traversal
540 - + merge-ort: precompute subset of sources for which we need rename detection
541 - + diffcore-rename: enable filtering possible rename sources
542 - (this branch is used by en/ort-perf-batch-10, en/ort-perf-batch-11 and en/ort-readiness.)
543 -
544 - The ort merge backend has been optimized by skipping irrelevant
545 - renames.
546 -
547 - Will merge to 'master'.
730 + Will merge to 'next'?
731
732
733 * hn/reftable (2021-03-12) 15 commits
@@ -566,163 +749,7 @@ Release tarballs are available at:
749
750 The "reftable" backend for the refs API.
751
569 -
570 -* ab/unexpected-object-type (2021-03-27) 10 commits
571 - - tag: don't misreport type of tagged objects in errors
572 - - object tests: add test for unexpected objects in tags
573 - - object.c: add and use oid_is_type_or_die_msg() function
574 - - object.c: add a utility function for "expected type X, got Y"
575 - - tree.c: fix misindentation in parse_tree_gently()
576 - - object-name.c: make dependency on object_type order more obvious
577 - - object-file.c: make oid_object_info() return "enum object_type"
578 - - object.c: make type_from_string() return "enum object_type"
579 - - object.c: refactor type_from_string_gently()
580 - - object.c: stop supporting len == -1 in type_from_string_gently()
581 -
582 - Error reporting upon object type mismatch has been improved
583 -
584 - cf. <YGBL88lYheyFmwCg@coredump.intra.peff.net>
585 - ... we would be much better off to say something like "somebody
586 - expected X to be a commit, but now somebody else expects it to be a
587 - blob", which is all that we can reliably say.
588 -
589 -
590 -* ah/plugleaks (2021-03-21) 9 commits
591 - (merged to 'next' on 2021-03-30 at 78636ede89)
592 - + transport: also free remote_refs in transport_disconnect()
593 - + parse-options: don't leak alias help messages
594 - + parse-options: convert bitfield values to use binary shift
595 - + init-db: silence template_dir leak when converting to absolute path
596 - + init: remove git_init_db_config() while fixing leaks
597 - + worktree: fix leak in dwim_branch()
598 - + clone: free or UNLEAK further pointers when finished
599 - + reset: free instead of leaking unneeded ref
600 - + symbolic-ref: don't leak shortened refname in check_symref()
601 -
602 - Plug or annotate remaining leaks that trigger while running the
603 - very basic set of tests.
604 -
605 - Will merge to 'master'.
606 -
607 -
608 -* ab/describe-tests-fix (2021-03-01) 10 commits
609 - - test-lib: return 1 from test_expect_{success,failure}
610 - - svn tests: refactor away a "set -e" in test body
611 - - svn tests: remove legacy re-setup from init-clone test
612 - - describe tests: support -C in "check_describe"
613 - - describe tests: fix nested "test_expect_success" call
614 - - describe tests: convert setup to use test_commit
615 - - test-lib functions: add an --annotated-tag option to "test_commit"
616 - - describe tests: always assert empty stderr from "describe"
617 - - describe tests: refactor away from glob matching
618 - - describe tests: improve test for --work-tree & --dirty
619 -
620 - Various updates to tests around "git describe"
621 -
622 - Expecting a reroll.
623 - cf. <xmqq1rcj6hzr.fsf@gitster.g>
624 -
625 -
626 -* tb/reverse-midx (2021-04-01) 17 commits
627 - (merged to 'next' on 2021-04-01 at 17c9542606)
628 - + midx.c: improve cache locality in midx_pack_order_cmp()
629 - + pack-revindex: write multi-pack reverse indexes
630 - + pack-write.c: extract 'write_rev_file_order'
631 - + pack-revindex: read multi-pack reverse indexes
632 - + Documentation/technical: describe multi-pack reverse indexes
633 - + midx: make some functions non-static
634 - + midx: keep track of the checksum
635 - + midx: don't free midx_name early
636 - + midx: allow marking a pack as preferred
637 - + t/helper/test-read-midx.c: add '--show-objects'
638 - + builtin/multi-pack-index.c: display usage on unrecognized command
639 - + builtin/multi-pack-index.c: don't enter bogus cmd_mode
640 - + builtin/multi-pack-index.c: split sub-commands
641 - + builtin/multi-pack-index.c: define common usage with a macro
642 - + builtin/multi-pack-index.c: don't handle 'progress' separately
643 - + builtin/multi-pack-index.c: inline 'flags' with options
644 - + Merge branch 'ds/chunked-file-api' into tb/reverse-midx
645 -
646 - An on-disk reverse-index to map the in-pack location of an object
647 - back to its object name across multiple packfiles is introduced.
648 -
649 - Will merge to 'master'.
650 -
651 -
652 -* ab/pickaxe-pcre2 (2021-02-18) 24 commits
653 - - pickaxe -G: don't special-case create/delete
654 - - pickaxe -G: terminate early on matching lines
655 - - xdiff-interface: support early exit in xdiff_outf()
656 - - xdiff-interface: allow early return from xdiff_emit_{line,hunk}_fn
657 - - pickaxe -S: slightly optimize contains()
658 - - pickaxe: rename variables in has_changes() for brevity
659 - - pickaxe -S: support content with NULs under --pickaxe-regex
660 - - pickaxe: assert that we must have a needle under -G or -S
661 - - pickaxe: refactor function selection in diffcore-pickaxe()
662 - - perf: add performance test for pickaxe
663 - - pickaxe/style: consolidate declarations and assignments
664 - - diff.h: move pickaxe fields together again
665 - - pickaxe: die when --find-object and --pickaxe-all are combined
666 - - pickaxe: die when -G and --pickaxe-regex are combined
667 - - pickaxe tests: test for -G, -S and --find-object incompatibility
668 - - pickaxe tests: add test for "log -S" not being a regex
669 - - pickaxe tests: add test for diffgrep_consume() internals
670 - - pickaxe tests: refactor to use test_commit --append --printf
671 - - test-lib functions: add --printf option to test_commit
672 - - test-lib-functions: reword "test_commit --append" docs
673 - - test-lib-functions: document and test test_commit --no-tag
674 - - grep/pcre2 tests: reword comments referring to kwset
675 - - Merge branch 'jk/rev-list-disk-usage' into ab/pickaxe-pcre2
676 - - Merge branch 'ab/test-lib' into ab/pickaxe-pcre2
677 -
678 - Rewrite the backend for "diff -G/-S" to use pcre2 engine when
679 - available.
680 -
681 - Needs (hopefully the final round of) review.
682 -
683 -
684 -* es/config-hooks (2021-03-10) 37 commits
685 - . docs: unify githooks and git-hook manpages
686 - . run-command: stop thinking about hooks
687 - . git-send-email: use 'git hook run' for 'sendemail-validate'
688 - . bugreport: use hook_exists instead of find_hook
689 - . receive-pack: convert receive hooks to hook.h
690 - . post-update: use hook.h library
691 - . proc-receive: acquire hook list from hook.h
692 - . receive-pack: convert 'update' hook to hook.h
693 - . reference-transaction: look for hooks in config
694 - . transport: convert pre-push hook to use config
695 - . hook: convert 'post-rewrite' hook to config
696 - . hooks: convert 'post-checkout' hook to hook library
697 - . git-p4: use 'git hook' to run hooks
698 - . receive-pack: convert push-to-checkout hook to hook.h
699 - . read-cache: convert post-index-change hook to use config
700 - . rebase: teach pre-rebase to use hook.h
701 - . gc: use hook library for pre-auto-gc hook
702 - . merge: use config-based hooks for post-merge hook
703 - . am: convert applypatch hooks to use config
704 - . commit: use config-based hooks
705 - . hooks: allow callers to capture output
706 - . run-command: allow capturing of collated output
707 - . hook: provide stdin by string_list or callback
708 - . run-command: add stdin callback for parallelization
709 - . hook: allow specifying working directory for hooks
710 - . hook: allow parallel hook execution
711 - . run-command: allow stdin for run_processes_parallel
712 - . hook: support passing stdin to hooks
713 - . hook: introduce hook_exists()
714 - . hook: add 'run' subcommand
715 - . parse-options: parse into strvec
716 - . hook: implement hookcmd.<name>.skip
717 - . hook: teach hook.runHookDir
718 - . hook: include hookdir hook in list
719 - . hook: add list command
720 - . hook: scaffolding for git-hook subcommand
721 - . doc: propose hooks managed by the config
722 -
723 - The "hooks defined in config" topic.
724 -
725 - Looking good.
752 + What's the status of this topic?
753
754 --------------------------------------------------
755 [Discarded]