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