What's cooking (2021/04 #01)

Junio C Hamano committed Apr 5, 2021 at 18:06 UTC 209a6c0ad09b667399b3bd14c6b80315f6a3a1eb
1 file changed +301 -421
whats-cooking.txt
+301 -421
@@ -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, #08; Tue, 30)
4 -X-master-at: a65ce7f831aa5fcc596c6d23fcde543d98b39bd7
5 -X-next-at: f1725819714fbcd96c47ae5f14e00cc01045272f
3 +Subject: What's cooking in git.git (Apr 2021, #01; Mon, 5)
4 +X-master-at: 2e36527f23b7f6ae15e6f21ac3b08bf3fed6ee48
5 +X-next-at: 78e8ed11b70d41228d2893cf13354187f8ca68ee
6
7 -What's cooking in git.git (Mar 2021, #08; Tue, 30)
7 +What's cooking in git.git (Apr 2021, #01; Mon, 5)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -43,243 +43,171 @@ Release tarballs are available at:
43 --------------------------------------------------
44 [Graduated to 'master']
45
46 -* ab/detox-gettext-tests (2021-03-23) 1 commit
47 - (merged to 'next' on 2021-03-24 at 00123ddc8d)
48 - + mktag tests: fix broken "&&" chain
49 -
50 - Testfix.
51 -
52 -
53 -* ab/diff-no-index-tests (2021-03-22) 2 commits
54 - (merged to 'next' on 2021-03-24 at a099113753)
55 - + diff --no-index tests: test mode normalization
56 - + diff --no-index tests: add test for --exit-code
57 -
58 - More test coverage over "diff --no-index".
59 -
60 -
61 -* ab/make-cleanup (2021-02-23) 5 commits
62 - (merged to 'next' on 2021-03-22 at e9e16c9fc4)
63 - + Makefile: add {program,xdiff,test,git,fuzz}-objs & objects targets
64 - + Makefile: split OBJECTS into OBJECTS and GIT_OBJS
65 - + Makefile: sort OBJECTS assignment for subsequent change
66 - + Makefile: split up long OBJECTS line
67 - + Makefile: guard against TEST_OBJS in the environment
68 -
69 - Originally merged to 'next' on 2021-03-19
70 -
71 - Reorganize Makefile to allow building git.o and other essential
72 - objects without extra stuff needed only for testing.
73 -
74 -
75 -* ab/read-tree (2021-03-20) 8 commits
76 - (merged to 'next' on 2021-03-24 at e1241a4890)
77 - + tree.h API: simplify read_tree_recursive() signature
78 - + tree.h API: expose read_tree_1() as read_tree_at()
79 - + archive: stop passing "stage" through read_tree_recursive()
80 - + ls-files: refactor away read_tree()
81 - + ls-files: don't needlessly pass around stage variable
82 - + tree.c API: move read_tree() into builtin/ls-files.c
83 - + ls-files tests: add meaningful --with-tree tests
84 - + show tests: add test for "git show <tree>"
85 - (this branch is used by ds/sparse-index and ds/sparse-index-protections.)
86 -
87 - Code simplification by removing support for a caller that is long gone.
88 -
89 -
90 -* ab/remove-rebase-usebuiltin (2021-03-23) 1 commit
91 - (merged to 'next' on 2021-03-24 at 39517a1c41)
92 - + rebase: remove transitory rebase.useBuiltin setting & env
93 -
94 - Remove the final hint that we used to have a scripted "git rebase".
95 -
96 -
97 -* bs/asciidoctor-installation-hints (2021-03-19) 1 commit
98 - (merged to 'next' on 2021-03-24 at 93980207f7)
99 - + INSTALL: note on using Asciidoctor to build doc
100 -
101 - Doc update.
102 -
103 -
104 -* cm/rebase-i (2021-01-29) 9 commits
105 - (merged to 'next' on 2021-03-22 at d5612f5a75)
106 - + doc/git-rebase: add documentation for fixup [-C|-c] options
107 - + rebase -i: teach --autosquash to work with amend!
108 - + t3437: test script for fixup [-C|-c] options in interactive rebase
109 - + rebase -i: add fixup [-C | -c] command
110 - + sequencer: use const variable for commit message comments
111 - + sequencer: pass todo_item to do_pick_commit()
112 - + rebase -i: comment out squash!/fixup! subjects from squash message
113 - + sequencer: factor out code to append squash message
114 - + rebase -i: only write fixup-message when it's needed
115 - (this branch is used by cm/rebase-i-fixup-amend-reword and cm/rebase-i-updates.)
116 -
117 - Originally merged to 'next' on 2021-02-01
118 -
119 - "rebase -i" is getting cleaned up and also enhanced.
120 -
121 -
122 -* cm/rebase-i-fixup-amend-reword (2021-03-15) 6 commits
123 - (merged to 'next' on 2021-03-22 at 6335e70b5e)
124 - + doc/git-commit: add documentation for fixup=[amend|reword] options
125 - + t3437: use --fixup with options to create amend! commit
126 - + t7500: add tests for --fixup=[amend|reword] options
127 - + commit: add a reword suboption to --fixup
128 - + commit: add amend suboption to --fixup to create amend! commit
129 - + sequencer: export and rename subject_length()
130 - (this branch uses cm/rebase-i and cm/rebase-i-updates.)
131 -
132 - Originally merged to 'next' on 2021-03-19
133 -
134 - "git commit --fixup=<commit>", which was to tweak the changes made
135 - to the contents while keeping the original log message intact,
136 - learned "--fixup=(amend|reword):<commit>", that can be used to
137 - tweak both the message and the contents, and only the message,
138 - respectively.
139 -
140 -
141 -* cm/rebase-i-updates (2021-02-10) 11 commits
142 - (merged to 'next' on 2021-03-22 at 067e2829d9)
143 - + doc/rebase -i: fix typo in the documentation of 'fixup' command
144 - + t/t3437: fixup the test 'multiple fixup -c opens editor once'
145 - + t/t3437: use named commits in the tests
146 - + t/t3437: simplify and document the test helpers
147 - + t/t3437: check the author date of fixed up commit
148 - + t/t3437: remove the dependency of 'expected-message' file from tests
149 - + t/t3437: fixup here-docs in the 'setup' test
150 - + t/lib-rebase: update the documentation of FAKE_LINES
151 - + rebase -i: clarify and fix 'fixup -c' rebase-todo help
152 - + sequencer: rename a few functions
153 - + sequencer: fixup the datatype of the 'flag' argument
154 - (this branch is used by cm/rebase-i-fixup-amend-reword; uses cm/rebase-i.)
155 -
156 - Originally merged to 'next' on 2021-02-12
157 -
158 - Follow-up fixes to "cm/rebase-i" topic.
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
161 -* cs/http-use-basic-after-failed-negotiate (2021-03-22) 1 commit
162 - (merged to 'next' on 2021-03-24 at 252983daa3)
163 - + remote-curl: fall back to basic auth if Negotiate fails
65
165 - When accessing a server with a URL like https://user:pass@site/, we
166 - did not to fall back to the basic authentication with the
167 - credential material embedded in the URL after the "Negotiate"
168 - authentication failed. Now we do.
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
171 -* hx/pack-objects-chunk-comment (2021-03-24) 1 commit
172 - (merged to 'next' on 2021-03-24 at e1c9ec9b71)
173 - + pack-objects: fix comment of reused_chunk.difference
81 + Preparatory API changes for parallel checkout.
82
175 - Comment update.
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
178 -* jc/doc-format-patch-clarify (2021-03-24) 1 commit
179 - (merged to 'next' on 2021-03-26 at 421c7c469f)
180 - + format-patch: give an overview of what a "patch" message is
88 + "git format-patch -v<n>" learned to allow a reroll count that is
89 + not an integer.
90
182 - Explain pieces of the format-patch output upfront before the rest
183 - of the documentation starts referring to them.
91 +--------------------------------------------------
92 +[New Topics]
93
94 +* jh/rfc-builtin-fsmonitor (2021-04-01) 24 commits
95 + - t7527: test status with untracked-cache and fsmonitor--daemon
96 + - p7519: add fsmonitor--daemon
97 + - t7527: create test for fsmonitor--daemon
98 + - fsmonitor: force update index when fsmonitor token advances
99 + - fsmonitor--daemon: use a cookie file to sync with file system
100 + - fsmonitor--daemon:: introduce client delay for testing
101 + - fsmonitor--daemon: periodically truncate list of modified files
102 + - fsmonitor--daemon: implement handle_client callback
103 + - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS
104 + - fsmonitor-fs-listen-macos: add macos header files for FSEvent
105 + - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows
106 + - fsmonitor--daemon: create token-based changed path cache
107 + - fsmonitor--daemon: define token-ids
108 + - fsmonitor--daemon: add pathname classification
109 + - fsmonitor--daemon: implement daemon command options
110 + - fsmonitor-fs-listen-macos: stub in backend for MacOS
111 + - fsmonitor-fs-listen-win32: stub in backend for Windows
112 + - fsmonitor--daemon: implement client command options
113 + - fsmonitor--daemon: add a built-in fsmonitor daemon
114 + - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC
115 + - config: FSMonitor is repository-specific
116 + - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
117 + - fsmonitor--daemon: man page and documentation
118 + - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor
119 +
120 +
121 +* jk/ref-filter-segfault-fix (2021-04-01) 1 commit
122 + (merged to 'next' on 2021-04-02 at 03596563b7)
123 + + ref-filter: fix NULL check for parse object failure
124 +
125 + A NULL-dereference bug has been corrected in an error codepath in
126 + "git for-each-ref", "git branch --list" etc.
127
186 -* jk/fail-prereq-testfix (2021-03-18) 1 commit
187 - (merged to 'next' on 2021-03-22 at efbda3a7ce)
188 - + t: annotate !PTHREADS tests with !FAIL_PREREQS
128 + Will merge to 'master'.
129
190 - Originally merged to 'next' on 2021-03-19
130
192 - GIT_TEST_FAIL_PREREQS is a mechanism to skip test pieces with
193 - prerequisites to catch broken tests that depend on the side effects
194 - of optional pieces, but did not work at all when negative
195 - prerequisites were involved.
131 +* tb/pack-preferred-tips-to-give-bitmap (2021-03-31) 3 commits
132 + (merged to 'next' on 2021-04-03 at cd7024ecd8)
133 + + builtin/pack-objects.c: respect 'pack.preferBitmapTips'
134 + + t/helper/test-bitmap.c: initial commit
135 + + pack-bitmap: add 'test_bitmap_commits()' helper
136
137 + A configuration variable has been added to force tips of certain
138 + refs to be given a reachability bitmap.
139
198 -* js/http-pki-credential-store (2021-03-11) 2 commits
199 - (merged to 'next' on 2021-03-22 at 0df16bc9b3)
200 - + http: drop the check for an empty proxy password before approving
201 - + http: store credential when PKI auth is used
140 + Will merge to 'master'.
141
203 - Originally merged to 'next' on 2021-03-19
142
205 - The http codepath learned to let the credential layer to cache the
206 - password used to unlock a certificate that has successfully been
207 - used.
143 +* ab/perl-do-not-abuse-map (2021-04-02) 1 commit
144 + (merged to 'next' on 2021-04-03 at 4eaf558557)
145 + + git-send-email: replace "map" in void context with "for"
146 + (this branch is used by ab/send-email-validate-errors.)
147
148 + Perl critique.
149
210 -* mt/checkout-remove-nofollow (2021-03-18) 2 commits
211 - (merged to 'next' on 2021-03-24 at 7a0bd7a95f)
212 - + checkout: don't follow symlinks when removing entries
213 - + symlinks: update comment on threaded_check_leading_path()
150 + Will merge to 'master'.
151
215 - When "git checkout" removes a path that does not exist in the
216 - commit it is checking out, it wasn't careful enough not to follow
217 - symbolic links, which has been corrected.
152
153 +* zh/trailer-cmd (2021-04-02) 1 commit
154 + - trailer: add new trailer.<token>.cmd config option
155 + (this branch uses zh/commit-trailer.)
156
220 -* nk/diff-index-fsmonitor (2021-03-18) 3 commits
221 - (merged to 'next' on 2021-03-22 at 3d4fa0bc51)
222 - + fsmonitor: add perf test for git diff HEAD
223 - + fsmonitor: add assertion that fsmonitor is valid to check_removed
224 - + fsmonitor: skip lstat deletion check during git diff-index
157 + The way the command line specified by the trailer.<token>.command
158 + configuration variable receives the end-user supplied value was
159 + both error prone and misleading. An alternative to achieve the
160 + same goal in a safer and more intuitive way has been added, as
161 + the trailer.<token>.cmd configuration variable, to replace it.
162
226 - Originally merged to 'next' on 2021-03-19
163 + Seems to break new tests for .command variant in zh/commit-trailer.
164
228 - "git diff-index" codepath has been taught to trust fsmonitor status
229 - to reduce number of lstat() calls.
165
166 +* fm/user-manual-use-preface (2021-04-03) 1 commit
167 + (merged to 'next' on 2021-04-05 at 0ae8f63207)
168 + + user-manual.txt: assign preface an id and a title
169
232 -* rf/send-email-hookspath (2021-03-23) 1 commit
233 - (merged to 'next' on 2021-03-24 at 84079a6e0f)
234 - + git-send-email: Respect core.hooksPath setting
170 + Doc update to improve git.info
171
236 - "git send-email" learned to honor the core.hooksPath configuration.
172 + Will merge to 'master'.
173
174
239 -* tb/geometric-repack (2021-03-19) 14 commits
240 - (merged to 'next' on 2021-03-22 at 8147f00207)
241 - + builtin/pack-objects.c: ignore missing links with --stdin-packs
242 - + builtin/repack.c: reword comment around pack-objects flags
243 - + builtin/repack.c: be more conservative with unsigned overflows
244 - + builtin/repack.c: assign pack split later
245 - + t7703: test --geometric repack with loose objects
246 - + builtin/repack.c: do not repack single packs with --geometric
247 - + builtin/repack.c: add '--geometric' option
248 - + packfile: add kept-pack cache for find_kept_pack_entry()
249 - + builtin/pack-objects.c: rewrite honor-pack-keep logic
250 - + p5303: measure time to repack with keep
251 - + p5303: add missing &&-chains
252 - + builtin/pack-objects.c: add '--stdin-packs' option
253 - + revision: learn '--no-kept-objects'
254 - + packfile: introduce 'find_kept_pack_entry()'
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
179 + (this branch uses ab/perl-do-not-abuse-map.)
180
256 - Originally merged to 'next' on 2021-03-08
181 + Clean-up codepaths that implements "git send-email --validate"
182 + option and improves the message from it.
183
258 - "git repack" so far has been only capable of repacking everything
259 - under the sun into a single pack (or split by size). A cleverer
260 - strategy to reduce the cost of repacking a repository has been
261 - introduced.
184 + Expecting a reroll.
185 + cf. <xmqqmtuc5yx7.fsf@gitster.g>
186
187
264 -* tb/push-simple-uses-branch-merge-config (2021-03-13) 1 commit
265 - (merged to 'next' on 2021-03-22 at bec0a72090)
266 - + Documentation/git-push.txt: correct configuration typo
188 +* tb/precompose-prefix-simplify (2021-04-05) 2 commits
189 + (merged to 'next' on 2021-04-05 at 78e8ed11b7)
190 + + macOS: precompose startup_info->prefix
191 + + precompose_utf8: make precompose_string_if_needed() public
192
268 - Originally merged to 'next' on 2021-03-19
193 + Streamline the codepath to fix the UTF-8 encoding issues in the
194 + argv[] and the prefix on macOS.
195
270 - Doc update.
196 + Will merge to 'master'.
197
198 --------------------------------------------------
273 -[New Topics]
199 +[Cooking]
200
201 * zh/commit-trailer (2021-03-23) 1 commit
276 - - commit: add --trailer option
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
282 - Will merge to 'next'.
210 + Will merge to 'master'.
211
212
213 * ab/userdiff-tests (2021-03-23) 10 commits
@@ -314,23 +242,15 @@ Release tarballs are available at:
242 Will merge to 'master'.
243
244
317 -* en/ort-perf-batch-11 (2021-03-25) 7 commits
318 - - merge-ort, diffcore-rename: employ cached renames when possible
319 - - merge-ort: add helper functions for using cached renames
320 - - merge-ort: preserve cached renames for the appropriate side
321 - - merge-ort: avoid accidental API mis-use
322 - - merge-ort: add code to check for whether cached renames can be reused
323 - - merge-ort: populate caches of rename detection results
324 - - merge-ort: add data structures for in-memory caching of rename detection
325 - (this branch uses en/ort-perf-batch-10, en/ort-perf-batch-9 and en/ort-readiness.)
326 -
327 -
245 * rs/daemon-sanitize-dir-sep (2021-03-26) 1 commit
329 - - daemon: sanitize all directory separators
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
256 - userdiff: add support for Scheme
@@ -341,46 +261,78 @@ Release tarballs are available at:
261
262
263 * js/cmake-vsbuild (2021-03-29) 4 commits
344 - - cmake(install): include vcpkg dlls
345 - - cmake: add a preparatory work-around to accommodate `vcpkg`
346 - - cmake(install): fix double .exe suffixes
347 - - cmake: support SKIP_DASHED_BUILT_INS
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
351 - Will merge to 'next'.
272 + Will merge to 'master'.
273
274
275 * js/security-md (2021-03-27) 2 commits
355 - - Document how we do embargoed releases
356 - - SECURITY: describe how to report vulnerabilities
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
363 -* ab/make-tags-quiet (2021-03-27) 1 commit
364 - - Makefile: add QUIET_GEN to "tags" and "TAGS" targets
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
368 - - column, range-diff: downcase option description
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
371 -* en/sequencer-edit-upon-conflict-fix (2021-03-29) 1 commit
372 - - sequencer: fix edit handling for cherry-pick and revert messages
303 + Will merge to 'master'.
304
305
375 -* gk/gitweb-redacted-email (2021-03-29) 1 commit
376 - - gitweb: redacted e-mail addresses feature.
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
379 -* ll/clone-reject-shallow (2021-03-29) 1 commit
380 - - builtin/clone.c: add --reject-shallow option
314 + Will merge to 'master'.
315 +
316 +
317 +* gk/gitweb-redacted-email (2021-03-31) 1 commit
318 + - gitweb: add "e-mail privacy" feature to redact e-mail addresses
319 +
320 + "gitweb" learned "e-mail privacy" feature to redact strings that
321 + look like e-mail addresses on various pages.
322 +
323 + Waiting for reviews.
324 + cf. <xmqq5z19k9wu.fsf@gitster.g>
325 +
326 +
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
382 ---------------------------------------------------
383 -[Cooking]
336
337 * ds/sparse-index (2021-03-30) 21 commits
338 - p2000: add sparse-index repos
@@ -404,6 +356,7 @@ Release tarballs are available at:
356 - t1092: clean up script quoting
357 - t/perf: add performance test for sparse operations
358 - sparse-index: design doc and format update
359 + (this branch is used by ds/sparse-index-protections.)
360
361 Both in-core and on-disk index has been updated to optionally omit
362 individual entries and replace them with the tree object that
@@ -422,11 +375,8 @@ Release tarballs are available at:
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.)
377
425 - I made a mistake of picking these up before they got sufficient
426 - exposure to the reviewers and ended up a source of potential mess
427 - when it turns out that any of the earlier ones need rewriting (I
428 - probably should stop picking up nested series that exceeds reviewer
429 - bandwidth), but how ready is this and subsequent topics?
378 + Various rename detection optimization to help "ort" merge strategy
379 + backend.
380
381
382 * mt/add-rm-in-sparse-checkout (2021-03-18) 7 commits
@@ -451,17 +401,16 @@ Release tarballs are available at:
401 - parallel-checkout: add configuration options
402 - parallel-checkout: make it truly parallel
403 - unpack-trees: add basic support for parallel checkout
454 - (this branch uses mt/parallel-checkout-part-1.)
404
405
406 * ps/pack-bitmap-optim (2021-03-22) 1 commit
458 - - pack-bitmap: avoid traversal of objects referenced by uninteresting tag
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
463 - Needs review.
464 - cf. <xmqqk0q4ov95.fsf@gitster.g>
413 + Will merge to 'master'.
414
415
416 * dl/complete-stash (2021-03-24) 3 commits
@@ -472,57 +421,37 @@ Release tarballs are available at:
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
478 -* ds/sparse-index-protections (2021-03-23) 47 commits
479 - . name-hash: use expand_to_path()
480 - . sparse-index: expand_to_path()
481 - . revision: ensure full index
482 - . resolve-undo: ensure full index
483 - . read-cache: ensure full index
484 - . pathspec: ensure full index
485 - . merge-recursive: ensure full index
486 - . merge-ort: ensure full index
487 - . entry: ensure full index
488 - . dir: ensure full index
489 - . diff-lib: ensure full index
490 - . update-index: ensure full index
491 - . sparse-checkout: ensure full index
492 - . rm: ensure full index
493 - . merge-index: ensure full index
494 - . ls-files: ensure full index
495 - . grep: ensure full index
496 - . fsck: ensure full index
497 - . difftool: ensure full index
498 - . commit: ensure full index
499 - . checkout: ensure full index
500 - . checkout-index: ensure full index
501 - . add: ensure full index
502 - . cache: move ensure_full_index() to cache.h
503 - . sparse-index: API protection strategy
504 - . read-cache: expand on query into sparse-directory entry
505 - . *: remove 'const' qualifier for struct index_state
506 - . p2000: add sparse-index repos
507 - . sparse-index: loose integration with cache_tree_verify()
508 - . cache-tree: integrate with sparse directory entries
509 - . sparse-checkout: disable sparse-index
510 - . sparse-checkout: toggle sparse index from builtin
511 - . sparse-index: create extension for compatibility
512 - . sparse-index: check index conversion happens
513 - . unpack-trees: allow sparse directories
514 - . submodule: sparse-index should not collapse links
515 - . sparse-index: convert from full to sparse
516 - . sparse-checkout: hold pattern list in index
517 - . unpack-trees: ensure full index
518 - . test-tool: don't force full index
519 - . test-read-cache: print cache entries with --table
520 - . t1092: compare sparse-checkout to sparse-index
521 - . sparse-index: implement ensure_full_index()
522 - . sparse-index: add guard to ensure full index
523 - . t1092: clean up script quoting
524 - . t/perf: add performance test for sparse operations
525 - . sparse-index: design doc and format update
428 +* ds/sparse-index-protections (2021-03-31) 25 commits
429 + - name-hash: use expand_to_path()
430 + - sparse-index: expand_to_path()
431 + - revision: ensure full index
432 + - resolve-undo: ensure full index
433 + - read-cache: ensure full index
434 + - pathspec: ensure full index
435 + - merge-recursive: ensure full index
436 + - entry: ensure full index
437 + - dir: ensure full index
438 + - update-index: ensure full index
439 + - stash: ensure full index
440 + - rm: ensure full index
441 + - merge-index: ensure full index
442 + - ls-files: ensure full index
443 + - grep: ensure full index
444 + - fsck: ensure full index
445 + - difftool: ensure full index
446 + - commit: ensure full index
447 + - checkout: ensure full index
448 + - checkout-index: ensure full index
449 + - add: ensure full index
450 + - cache: move ensure_full_index() to cache.h
451 + - read-cache: expand on query into sparse-directory entry
452 + - *: remove 'const' qualifier for struct index_state
453 + - sparse-index: API protection strategy
454 + (this branch uses ds/sparse-index.)
455
456 Builds on top of the sparse-index infrastructure to mark operations
457 that are not ready to mark with the sparse index, causing them to
@@ -573,68 +502,49 @@ Release tarballs are available at:
502 cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>
503
504
576 -* mt/parallel-checkout-part-1 (2021-03-23) 9 commits
577 - (merged to 'next' on 2021-03-30 at e8995d1046)
578 - + entry: add checkout_entry_ca() taking preloaded conv_attrs
579 - + entry: move conv_attrs lookup up to checkout_entry()
580 - + entry: extract update_ce_after_write() from write_entry()
581 - + entry: make fstat_output() and read_blob_entry() public
582 - + entry: extract a header file for entry.c functions
583 - + convert: add classification for conv_attrs struct
584 - + convert: add get_stream_filter_ca() variant
585 - + convert: add [async_]convert_to_working_tree_ca() variants
586 - + convert: make convert_attrs() and convert structs public
587 - (this branch is used by mt/parallel-checkout-part-2.)
588 -
589 - Originally merged to 'next' on 2021-03-21
590 -
591 - Preparatory API changes for parallel checkout.
592 -
593 - Will merge to 'master'.
594 -
595 -
505 * ab/fsck-api-cleanup (2021-03-28) 19 commits
597 - - fetch-pack: use new fsck API to printing dangling submodules
598 - - fetch-pack: use file-scope static struct for fsck_options
599 - - fetch-pack: don't needlessly copy fsck_options
600 - - fsck.c: move gitmodules_{found,done} into fsck_options
601 - - fsck.c: add an fsck_set_msg_type() API that takes enums
602 - - fsck.c: pass along the fsck_msg_id in the fsck_error callback
603 - - fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h
604 - - fsck.c: give "FOREACH_MSG_ID" a more specific name
605 - - fsck.c: undefine temporary STR macro after use
606 - - fsck.c: call parse_msg_type() early in fsck_set_msg_type()
607 - - fsck.h: re-order and re-assign "enum fsck_msg_type"
608 - - fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
609 - - fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"
610 - - fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
611 - - fsck.c: remove (mostly) redundant append_msg_id() function
612 - - fsck.c: rename variables in fsck_set_msg_type() for less confusion
613 - - fsck.h: use "enum object_type" instead of "int"
614 - - fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}
615 - - fsck.c: refactor and rename common config callback
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
619 - Will merge to 'next'?
620 - cf. <xmqq5z1alnmu.fsf@gitster.g>
529 + Will merge to 'master'.
530
531
532 * en/ort-perf-batch-9 (2021-03-10) 8 commits
624 - - diffcore-rename: avoid doing basename comparisons for irrelevant sources
625 - - merge-ort: skip rename detection entirely if possible
626 - - merge-ort: use relevant_sources to filter possible rename sources
627 - - merge-ort: precompute whether directory rename detection is needed
628 - - merge-ort: introduce wrappers for alternate tree traversal
629 - - merge-ort: add data structures for an alternate tree traversal
630 - - merge-ort: precompute subset of sources for which we need rename detection
631 - - diffcore-rename: enable filtering possible rename sources
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
637 - Will merge to 'next'.
547 + Will merge to 'master'.
548
549
550 * hn/reftable (2021-03-12) 15 commits
@@ -713,39 +623,30 @@ Release tarballs are available at:
623 cf. <xmqq1rcj6hzr.fsf@gitster.g>
624
625
716 -* zh/format-patch-fractional-reroll-count (2021-03-23) 1 commit
717 - (merged to 'next' on 2021-03-26 at 3c29ec9a02)
718 - + format-patch: allow a non-integral version numbers
719 -
720 - "git format-patch -v<n>" learned to allow a reroll count that is
721 - not an integer.
722 -
723 - Will merge to 'master'.
724 -
725 -
726 -* tb/reverse-midx (2021-03-30) 17 commits
727 - - midx.c: improve cache locality in midx_pack_order_cmp()
728 - - pack-revindex: write multi-pack reverse indexes
729 - - pack-write.c: extract 'write_rev_file_order'
730 - - pack-revindex: read multi-pack reverse indexes
731 - - Documentation/technical: describe multi-pack reverse indexes
732 - - midx: make some functions non-static
733 - - midx: keep track of the checksum
734 - - midx: don't free midx_name early
735 - - midx: allow marking a pack as preferred
736 - - t/helper/test-read-midx.c: add '--show-objects'
737 - - builtin/multi-pack-index.c: display usage on unrecognized command
738 - - builtin/multi-pack-index.c: don't enter bogus cmd_mode
739 - - builtin/multi-pack-index.c: split sub-commands
740 - - builtin/multi-pack-index.c: define common usage with a macro
741 - - builtin/multi-pack-index.c: don't handle 'progress' separately
742 - - builtin/multi-pack-index.c: inline 'flags' with options
743 - - Merge branch 'ds/chunked-file-api' into tb/reverse-midx
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
748 - Will merge to 'next'.
649 + Will merge to 'master'.
650
651
652 * ab/pickaxe-pcre2 (2021-02-18) 24 commits
@@ -780,65 +681,44 @@ Release tarballs are available at:
681 Needs (hopefully the final round of) review.
682
683
783 -* jh/simple-ipc (2021-03-22) 12 commits
784 - (merged to 'next' on 2021-03-24 at 3ebcedf89a)
785 - + t0052: add simple-ipc tests and t/helper/test-simple-ipc tool
786 - + simple-ipc: add Unix domain socket implementation
787 - + unix-stream-server: create unix domain socket under lock
788 - + unix-socket: disallow chdir() when creating unix domain sockets
789 - + unix-socket: add backlog size option to unix_stream_listen()
790 - + unix-socket: eliminate static unix_stream_socket() helper function
791 - + simple-ipc: add win32 implementation
792 - + simple-ipc: design documentation for new IPC mechanism
793 - + pkt-line: add options argument to read_packetized_to_strbuf()
794 - + pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option
795 - + pkt-line: do not issue flush packets in write_packetized_*()
796 - + pkt-line: eliminate the need for static buffer in packet_write_gently()
797 -
798 - A simple IPC interface gets introduced to build services like
799 - fsmonitor on top.
800 -
801 - Will merge to 'master'.
802 -
803 -
684 * es/config-hooks (2021-03-10) 37 commits
805 - - docs: unify githooks and git-hook manpages
806 - - run-command: stop thinking about hooks
807 - - git-send-email: use 'git hook run' for 'sendemail-validate'
808 - - bugreport: use hook_exists instead of find_hook
809 - - receive-pack: convert receive hooks to hook.h
810 - - post-update: use hook.h library
811 - - proc-receive: acquire hook list from hook.h
812 - - receive-pack: convert 'update' hook to hook.h
813 - - reference-transaction: look for hooks in config
814 - - transport: convert pre-push hook to use config
815 - - hook: convert 'post-rewrite' hook to config
816 - - hooks: convert 'post-checkout' hook to hook library
817 - - git-p4: use 'git hook' to run hooks
818 - - receive-pack: convert push-to-checkout hook to hook.h
819 - - read-cache: convert post-index-change hook to use config
820 - - rebase: teach pre-rebase to use hook.h
821 - - gc: use hook library for pre-auto-gc hook
822 - - merge: use config-based hooks for post-merge hook
823 - - am: convert applypatch hooks to use config
824 - - commit: use config-based hooks
825 - - hooks: allow callers to capture output
826 - - run-command: allow capturing of collated output
827 - - hook: provide stdin by string_list or callback
828 - - run-command: add stdin callback for parallelization
829 - - hook: allow specifying working directory for hooks
830 - - hook: allow parallel hook execution
831 - - run-command: allow stdin for run_processes_parallel
832 - - hook: support passing stdin to hooks
833 - - hook: introduce hook_exists()
834 - - hook: add 'run' subcommand
835 - - parse-options: parse into strvec
836 - - hook: implement hookcmd.<name>.skip
837 - - hook: teach hook.runHookDir
838 - - hook: include hookdir hook in list
839 - - hook: add list command
840 - - hook: scaffolding for git-hook subcommand
841 - - doc: propose hooks managed by the config
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