What's cooking (2021/03 #05)

Junio C Hamano committed Mar 17, 2021 at 15:12 UTC dfe9970c3ecba4619efeac0f2cb837c6f4530a01
1 file changed +222 -96
whats-cooking.txt
+222 -96
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Mar 2021, #04; Sun, 14)
4 -X-master-at: 8775279891fd186ce847b7ddb7f0ac2339504300
5 -X-next-at: c8bc67eb22fa994c4b7386cb001aaa95940877c6
3 +Subject: What's cooking in git.git (Mar 2021, #05; Wed, 17)
4 +X-master-at: a5828ae6b52137b913b978e16cd2334482eb4c1f
5 +X-next-at: 576ba9dcdaf1007243f5a5cb4bf1a1e7b8fcf850
6
7 -What's cooking in git.git (Mar 2021, #04; Sun, 14)
7 +What's cooking in git.git (Mar 2021, #05; Wed, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -12,7 +12,17 @@ only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed
12 with '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 -Git 2.31 final is expected to be tagged on Mar 15, 2021 (monday).
15 +Git 2.31 has been tagged. We will hopefully either (1) not see
16 +brown-paper-bag breakages at all, or (2) will see some but can
17 +immediately deal with them, in coming couple of days. After that,
18 +the 2.32 cycle will gain steam, starting next week. Let's see.
19 +
20 +Many topics marked as "Will cook in 'next'" should be marked for
21 +merging to 'master' now, but that hasn't happened yet. Please
22 +nominate those that should be kicked back from 'next' to 'seen', if
23 +there are any. Please also nominate those that should be among the
24 +first batch of topics to be in 'master' (after a handful of 2.31
25 +regression fixes go through 'next' down to 'master', that is).
26
27 Copies of the source code to Git live in many repositories, and the
28 following is a list of the ones I push into or their mirrors. Some
@@ -43,59 +53,102 @@ Release tarballs are available at:
53 https://www.kernel.org/pub/software/scm/git/
54
55 --------------------------------------------------
46 -[Graduated to 'master']
56 +[New Topics]
57
48 -* jn/mergetool-hideresolved-is-optional (2021-03-13) 2 commits
49 - (merged to 'next' on 2021-03-13 at 23f5a25716)
50 - + doc: describe mergetool configuration in git-mergetool(1)
51 - + mergetool: do not enable hideResolved by default
58 +* jc/calloc-fix (2021-03-15) 1 commit
59 + - xcalloc: use CALLOC_ARRAY() when applicable
60
53 - Disable the recent mergetool's hideresolved feature by default for
54 - backward compatibility and safety.
61 + Code clean-up.
62
63 + Will merge to 'next'.
64
57 -* tb/pack-revindex-on-disk (2021-02-26) 1 commit
58 - (merged to 'next' on 2021-03-12 at 7aa348d3b3)
59 - + pack-revindex.c: don't close unopened file descriptors
65
61 - Fix for a topic in 'master'.
66 +* ab/tree-walk-with-object-type (2021-03-17) 32 commits
67 + - tree-walk.h API: add a tree_entry_extract_type() function
68 + - blame: emit a better error on 'git blame directory'
69 + - tree-walk.h API: add a get_tree_entry_path() function
70 + - tree-walk.h API: add get_tree_entry_all()
71 + - tree-walk.h API: add a tree_entry_extract_all() function
72 + - tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode()
73 + - tree-walk.h API: document and format tree_entry_extract()
74 + - tree-walk.h API: add get_tree_entry_type()
75 + - match-trees: use "tmp" for mode in shift_tree_by()
76 + - tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode()
77 + - tree-walk.h API: formatting changes for subsequent commit
78 + - tree-walk.h users: use temporary variable(s) for "mode"
79 + - fsck.c: switch on "object_type" in fsck_walk_tree()
80 + - merge-ort: correct reference to test in 62fdec17a11
81 + - merge-tree tests: test for the mode comparison in same_entry()
82 + - tree-walk.h users: migrate miscellaneous "mode" to "object_type"
83 + - tree-walk.h users: refactor chained "mode" if/else into switch
84 + - tree-walk.h users: migrate "p->mode &&" pattern
85 + - tree.h API: make read_tree_fn_t take an "enum object_type"
86 + - archive: get rid of 'stage' parameter
87 + - tree.h users: format argument lists in archive.c
88 + - tree.h: format argument lists of read_tree_recursive() users
89 + - tree-walk.h users: switch object_type(...) to new .object_type
90 + - cache.h: have base_name_compare() take "is tree?", not "mode"
91 + - diff tests: test that "mode" is passed when sorting
92 + - mktree tests: test that "mode" is passed when sorting
93 + - fast-import tests: test for sorting dir/file foo v.s. foo.txt
94 + - tree-walk.c: migrate to using new "object_type" field when possible
95 + - tree-walk.h: add object_type member to name_entry
96 + - cache.h: add a comment to object_type()
97 + - notes & match-trees: use name_entry's "pathlen" member
98 + - diff.c: remove redundant canon_mode() call
99 + (this branch uses ab/read-tree.)
100
63 ---------------------------------------------------
64 -[New Topics]
101 + Code clean-up.
102
66 -* en/ort-perf-batch-9 (2021-03-10) 8 commits
67 - - diffcore-rename: avoid doing basename comparisons for irrelevant sources
68 - - merge-ort: skip rename detection entirely if possible
69 - - merge-ort: use relevant_sources to filter possible rename sources
70 - - merge-ort: precompute whether directory rename detection is needed
71 - - merge-ort: introduce wrappers for alternate tree traversal
72 - - merge-ort: add data structures for an alternate tree traversal
73 - - merge-ort: precompute subset of sources for which we need rename detection
74 - - diffcore-rename: enable filtering possible rename sources
75 - (this branch uses en/ort-perf-batch-8.)
103 + I am not exactly sure where this series wants to go, other than
104 + unnecessarily churning the code. Seems to break "diff --no-index"
105 + rather badly, too (e.g. t4050, t4002, among others).
106
107
78 -* js/http-pki-credential-store (2021-03-11) 2 commits
79 - - http: drop the check for an empty proxy password before approving
80 - - http: store credential when PKI auth is used
108 +* jh/fsmonitor-prework (2021-03-17) 1 commit
109 + - fsmonitor: avoid global-buffer-overflow READ when checking trivial response
110
82 - The http codepath learned to let the credential layer to cache the
83 - password used to unlock a certificate that has successfully been
84 - used.
111 + The fsmonitor interface read from its input without making sure
112 + there is something to read from. This bug is new in 2.31
113 + timeframe.
114
115 + Will merge to 'next'.
116
87 -* rs/avoid-null-statement-after-macro-call (2021-03-13) 2 commits
88 - - mem-pool: drop trailing semicolon from macro definition
89 - - block-sha1: drop trailing semicolon from macro definition
117
118 +* jk/bisect-peel-tag-fix (2021-03-17) 1 commit
119 + - bisect: peel annotated tags to commits
120
92 -* rs/calloc-array (2021-03-13) 2 commits
93 - - use CALLOC_ARRAY
94 - - git-compat-util.h: drop trailing semicolon from macro definition
121 + "git bisect" reimplemented more in C during 2.30 timeframe did not
122 + take an annotated tag as a good/bad endpoint well. This regression
123 + has been corrected.
124
125 + Will merge to 'next'.
126
97 -* jk/slimmed-down (2021-03-14) 1 commit
98 - - vcs-svn: remove header files as well
127 +
128 +* js/fsmonitor-unpack-fix (2021-03-17) 2 commits
129 + - fsmonitor: do not forget to release the token in `discard_index()`
130 + - fsmonitor: fix memory corruption in some corner cases
131 +
132 + The data structure used by fsmonitor interface was not properly
133 + duplicated during an in-core merge, leading to use-after-free etc.
134 +
135 + Will merge to 'next'.
136 +
137 +
138 +* jt/clone-unborn-head (2021-03-17) 1 commit
139 + - t5606: run clone branch name test with protocol v2
140 +
141 + Test fix.
142 +
143 + Will merge to 'next'.
144 +
145 +
146 +* km/config-doc-typofix (2021-03-17) 1 commit
147 + - config.txt: add missing period
148 +
149 + Docfix.
150 +
151 + Will merge to 'next'.
152
153 --------------------------------------------------
154 [Stalled]
@@ -116,47 +169,8 @@ Release tarballs are available at:
169 Looking good.
170
171
119 -* ab/fsck-api-cleanup (2021-02-18) 10 commits
120 - - fsck.h: update FSCK_OPTIONS_* for object_name
121 - - fsck.c: give "FOREACH_MSG_ID" a more specific name
122 - - fsck.c: undefine temporary STR macro after use
123 - - fsck.c: call parse_msg_type() early in fsck_set_msg_type()
124 - - fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
125 - - fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
126 - - fsck.c: move definition of msg_id into append_msg_id()
127 - - fsck.c: rename variables in fsck_set_msg_type() for less confusion
128 - - fsck.h: use "enum object_type" instead of "int"
129 - - fsck.h: indent arguments to of fsck_set_msg_type
130 -
131 - Preliminary fsck API clean-up.
132 -
133 - Expecting a reroll.
134 - cf. <xmqqczwxc8bw.fsf@gitster.g>
135 -
136 -
137 -* jk/symlinked-dotgitx-files (2020-10-23) 9 commits
138 - - docs: document symlink restrictions for .git* files
139 - - fsck: complain when .gitattributes or .gitignore is a symlink
140 - - verify_path(): disallow symlinks in .gitattributes and .gitignore
141 - - t0060: test obscured .gitattributes and .gitignore matching
142 - - t7450: test .gitmodules symlink matching against obscured names
143 - - t7450: test verify_path() handling of gitmodules
144 - - t7415: rename to expand scope
145 - - fsck_tree(): wrap some long lines
146 - - fsck_tree(): fix shadowed variable
147 -
148 - "git fsck" and the corresponding check done during the transport
149 - learned to ensure that in-tree files like `.gitignore` and
150 - `.gitattributes` are not symbolic links.
151 -
152 - It seems that there are real projects with .gitignore recorded as
153 - symlinks, which may need to loosen the fsck setting. Do we need to
154 - introduce a class that is separate from symlinked .gitmodules that
155 - has potential consequences that is more/less grave, so that these
156 - projects can opt out of the new checks?
157 -
158 -
159 -* ag/merge-strategies-in-c (2020-11-24) 13 commits
172 +* ag/merge-strategies-in-c (2021-03-15) 14 commits
173 + - SQUASH??? CALLOC_ARRAY()
174 - sequencer: use the "octopus" merge strategy without forking
175 - sequencer: use the "resolve" strategy without forking
176 - merge: use the "octopus" strategy without forking
@@ -179,6 +193,85 @@ Release tarballs are available at:
193 --------------------------------------------------
194 [Cooking]
195
196 +* ab/fsck-api-cleanup (2021-03-17) 19 commits
197 + - fetch-pack: use new fsck API to printing dangling submodules
198 + - fetch-pack: use file-scope static struct for fsck_options
199 + - fetch-pack: don't needlessly copy fsck_options
200 + - fsck.c: move gitmodules_{found,done} into fsck_options
201 + - fsck.c: add an fsck_set_msg_type() API that takes enums
202 + - fsck.c: pass along the fsck_msg_id in the fsck_error callback
203 + - fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h
204 + - fsck.c: give "FOREACH_MSG_ID" a more specific name
205 + - fsck.c: undefine temporary STR macro after use
206 + - fsck.c: call parse_msg_type() early in fsck_set_msg_type()
207 + - fsck.h: re-order and re-assign "enum fsck_msg_type"
208 + - fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
209 + - fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"
210 + - fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
211 + - fsck.c: move definition of msg_id into append_msg_id()
212 + - fsck.c: rename variables in fsck_set_msg_type() for less confusion
213 + - fsck.h: use "enum object_type" instead of "int"
214 + - fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}
215 + - fsck.c: refactor and rename common config callback
216 +
217 + Fsck API clean-up.
218 + cf. <20210317182054.5986-1-avarab@gmail.com>
219 +
220 +
221 +* en/ort-perf-batch-9 (2021-03-10) 8 commits
222 + - diffcore-rename: avoid doing basename comparisons for irrelevant sources
223 + - merge-ort: skip rename detection entirely if possible
224 + - merge-ort: use relevant_sources to filter possible rename sources
225 + - merge-ort: precompute whether directory rename detection is needed
226 + - merge-ort: introduce wrappers for alternate tree traversal
227 + - merge-ort: add data structures for an alternate tree traversal
228 + - merge-ort: precompute subset of sources for which we need rename detection
229 + - diffcore-rename: enable filtering possible rename sources
230 + (this branch uses en/ort-perf-batch-8.)
231 +
232 + More ort.
233 +
234 + Ready?
235 +
236 +
237 +* js/http-pki-credential-store (2021-03-11) 2 commits
238 + - http: drop the check for an empty proxy password before approving
239 + - http: store credential when PKI auth is used
240 +
241 + The http codepath learned to let the credential layer to cache the
242 + password used to unlock a certificate that has successfully been
243 + used.
244 +
245 + Will merge to 'next'.
246 +
247 +
248 +* rs/avoid-null-statement-after-macro-call (2021-03-17) 2 commits
249 + - mem-pool: drop trailing semicolon from macro definition
250 + - block-sha1: drop trailing semicolon from macro definition
251 +
252 + Fix macros that can silently inject unintended null-statements.
253 +
254 + Will merge to 'next'.
255 +
256 +
257 +* rs/calloc-array (2021-03-15) 3 commits
258 + - cocci: allow xcalloc(1, size)
259 + - use CALLOC_ARRAY
260 + - git-compat-util.h: drop trailing semicolon from macro definition
261 +
262 + CALLOC_ARRAY() macro replaces many uses of xcalloc().
263 +
264 + Will merge to 'next'.
265 +
266 +
267 +* jk/slimmed-down (2021-03-14) 1 commit
268 + - vcs-svn: remove header files as well
269 +
270 + Unused code removal.
271 +
272 + Will merge to 'next'.
273 +
274 +
275 * dl/stash-show-untracked (2021-03-05) 2 commits
276 (merged to 'next' on 2021-03-08 at 510d4cfa5f)
277 + stash show: learn stash.showIncludeUntracked
@@ -247,6 +340,7 @@ Release tarballs are available at:
340
341 Coccicheck update.
342
343 + Expecting a reroll.
344 IIUC, the "speed up" claimed in the intermediate steps are all gone
345 when correctness is brought back in with the last step. The series
346 needs a restructuring to avoid confuing readers with "it produces
@@ -255,17 +349,23 @@ Release tarballs are available at:
349 that fast" progression.
350
351
258 -* ab/read-tree (2021-03-11) 6 commits
259 - . tree.h API: remove "stage" parameter from read_tree_recursive()
260 - . tree.h API: remove support for starting at prefix != ""
261 - . ls-files: refactor away read_tree()
262 - . ls-files: don't needlessly pass around stage variable
263 - . tree.c API: move read_tree() into builtin/ls-files.c
264 - . ls-files tests: add meaningful --with-tree tests
352 +* ab/read-tree (2021-03-17) 9 commits
353 + - tree.h API: expose read_tree_1() as read_tree_at()
354 + - show tests: add test for "git show <tree>"
355 + - tree.h API: rename read_tree_recursive() to read_tree()
356 + - tree.h API: remove "stage" parameter from read_tree_recursive()
357 + - tree.h API: remove support for starting at prefix != ""
358 + - ls-files: refactor away read_tree()
359 + - ls-files: don't needlessly pass around stage variable
360 + - tree.c API: move read_tree() into builtin/ls-files.c
361 + - ls-files tests: add meaningful --with-tree tests
362 + (this branch is used by ab/tree-walk-with-object-type.)
363
364 Code simplification by removing support for a caller that is long gone.
365
268 - It turns out that a new caller is just about to happen.
366 + Expecting a reroll.
367 + Mostly good, but the progression shows "oops we screwed up" earlier
368 + in the series that is then fixed later.
369
370
371 * ab/unexpected-object-type (2021-03-08) 7 commits
@@ -279,6 +379,7 @@ Release tarballs are available at:
379
380 Error reporting upon object type mismatch has been improved
381
382 + Expecting a reroll.
383 Looked good except for some rewrites.
384
385
@@ -305,6 +406,8 @@ Release tarballs are available at:
406 Plug or annotate remaining leaks that trigger while running the
407 very basic set of tests.
408
409 + Ready?
410 +
411
412 * bc/clone-bare-with-conflicting-config (2021-03-10) 1 commit
413 (merged to 'next' on 2021-03-14 at 963a86199c)
@@ -557,7 +660,7 @@ Release tarballs are available at:
660 available.
661
662
560 -* cm/rebase-i-fixup-amend-reword (2021-03-13) 6 commits
663 +* cm/rebase-i-fixup-amend-reword (2021-03-15) 6 commits
664 - doc/git-commit: add documentation for fixup=[amend|reword] options
665 - t3437: use --fixup with options to create amend! commit
666 - t7500: add tests for --fixup=[amend|reword] options
@@ -572,9 +675,6 @@ Release tarballs are available at:
675 tweak both the message and the contents, and only the message,
676 respectively.
677
575 - Expecting a reroll.
576 - cf. <CAPSFM5c7ULGxThtFjPam33wMzK3kprds97zwJ63stc_Ct24nmQ@mail.gmail.com>
577 -
678
679 * jk/open-dotgitx-with-nofollow (2021-02-16) 6 commits
680 (merged to 'next' on 2021-02-25 at a784bf7be6)
@@ -630,7 +730,8 @@ Release tarballs are available at:
730 Will cook in 'next', together with "cm/rebase-i".
731
732
633 -* jh/simple-ipc (2021-03-09) 12 commits
733 +* jh/simple-ipc (2021-03-15) 13 commits
734 + - SQUASH??? CALLOC_ARRAY()
735 - t0052: add simple-ipc tests and t/helper/test-simple-ipc tool
736 - simple-ipc: add Unix domain socket implementation
737 - unix-stream-server: create unix domain socket under lock
@@ -785,3 +886,28 @@ Release tarballs are available at:
886 . doc: propose hooks managed by the config
887
888 Now replaced by es/config-hooks topic.
889 +
890 +
891 +
892 +* jk/symlinked-dotgitx-files (2020-10-23) 9 commits
893 + . docs: document symlink restrictions for .git* files
894 + . fsck: complain when .gitattributes or .gitignore is a symlink
895 + . verify_path(): disallow symlinks in .gitattributes and .gitignore
896 + . t0060: test obscured .gitattributes and .gitignore matching
897 + . t7450: test .gitmodules symlink matching against obscured names
898 + . t7450: test verify_path() handling of gitmodules
899 + . t7415: rename to expand scope
900 + . fsck_tree(): wrap some long lines
901 + . fsck_tree(): fix shadowed variable
902 +
903 + "git fsck" and the corresponding check done during the transport
904 + learned to ensure that in-tree files like `.gitignore` and
905 + `.gitattributes` are not symbolic links.
906 +
907 + It seems that there are real projects with .gitignore recorded as
908 + symlinks, which may need to loosen the fsck setting. Do we need to
909 + introduce a class that is separate from symlinked .gitmodules that
910 + has potential consequences that is more/less grave, so that these
911 + projects can opt out of the new checks?
912 +
913 +