What's cooking (2022/03 #03)

Junio C Hamano committed Mar 14, 2022 at 21:19 UTC cfdb4fca85e8fabb7da5c8aa0eea983eb8d4d675
1 file changed +564 -550
whats-cooking.txt
+564 -550
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Mar 2022, #02; Mon, 7)
4 -X-master-at: c2162907e9aa884bdb70208389cb99b181620d51
5 -X-next-at: 4b3deeb25d03f55d1d605c96f19e40bb89b562d1
3 +Subject: What's cooking in git.git (Mar 2022, #03; Mon, 14)
4 +X-master-at: b896f729e240d250cf56899e6a0073f6aa469f5d
5 +X-next-at: 00dc842c0f4f38d42e23fc4916f48b0869e9054f
6
7 -What's cooking in git.git (Mar 2022, #02; Mon, 7)
7 +What's cooking in git.git (Mar 2022, #03; Mon, 14)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -49,224 +49,362 @@ Release tarballs are available at:
49 --------------------------------------------------
50 [Graduated to 'master']
51
52 -* ab/c99-designated-initializers (2022-02-24) 9 commits
53 - (merged to 'next' on 2022-02-28 at 5ff6d5b26f)
54 - + fast-import.c: use designated initializers for "partial" struct assignments
55 - + refspec.c: use designated initializers for "struct refspec_item"
56 - + convert.c: use designated initializers for "struct stream_filter*"
57 - + userdiff.c: use designated initializers for "struct userdiff_driver"
58 - + archive-*.c: use designated initializers for "struct archiver"
59 - + object-file: use designated initializers for "struct git_hash_algo"
60 - + trace2: use designated initializers for "struct tr2_dst"
61 - + trace2: use designated initializers for "struct tr2_tgt"
62 - + imap-send.c: use designated initializers for "struct imap_server_conf"
52 +* ab/c99-variadic-macros (2022-02-21) 2 commits
53 + (merged to 'next' on 2022-03-01 at 0419a86e23)
54 + + C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
55 + + git-compat-util.h: clarify GCC v.s. C99-specific in comment
56
64 - Use designated initializers we started using in mid 2017 in more
65 - parts of the codebase that are relatively quiescent.
66 - source: <cover-00.12-00000000000-20220224T092805Z-avarab@gmail.com>
57 + Remove the escape hatch we added when we introduced the weather
58 + balloon to use variadic macros unconditionally, to make it official
59 + that we now have a hard dependency on the feature.
60 + source: <cover-v4-0.2-00000000000-20220221T160440Z-avarab@gmail.com>
61
62
69 -* ab/hook-tests (2022-02-19) 2 commits
70 - (merged to 'next' on 2022-02-28 at bb6b7d1c24)
71 - + hook tests: use a modern style for "pre-push" tests
72 - + hook tests: test for exact "pre-push" hook input
63 +* ab/help-fixes (2022-02-23) 9 commits
64 + (merged to 'next' on 2022-03-01 at 215f5dbbfb)
65 + + help: don't print "\n" before single-section output
66 + + help: add --no-[external-commands|aliases] for use with --all
67 + + help: error if [-a|-g|-c] and [-i|-m|-w] are combined
68 + + help: correct usage & behavior of "git help --all"
69 + + help: note the option name on option incompatibility
70 + + help.c: split up list_all_cmds_help() function
71 + + help tests: test "git" and "git help [-a|-g] spacing
72 + + help.c: use puts() instead of printf{,_ln}() for consistency
73 + + help doc: add missing "]" to "[-a|--all]"
74
74 - Test modernization.
75 - source: <cover-0.2-00000000000-20220218T204719Z-avarab@gmail.com>
75 + Updates to how command line options to "git help" are handled.
76 + source: <cover-v2-0.9-00000000000-20220221T193708Z-avarab@gmail.com>
77
78
78 -* ab/test-leak-diag (2022-02-28) 4 commits
79 - (merged to 'next' on 2022-02-28 at 3019aad7fe)
80 - + test-lib: add "fast_unwind_on_malloc=0" to LSAN_OPTIONS
81 - + test-lib: make $GIT_BUILD_DIR an absolute path
82 - + test-lib: correct and assert TEST_DIRECTORY overriding
83 - + test-lib: add GIT_SAN_OPTIONS, inherit [AL]SAN_OPTIONS
79 +* ab/make-optim-noop (2022-03-03) 8 commits
80 + (merged to 'next' on 2022-03-04 at 0419394f3d)
81 + + Makefiles: add and use wildcard "mkdir -p" template
82 + + Makefile: add "$(QUIET)" boilerplate to shared.mak
83 + + Makefile: move $(comma), $(empty) and $(space) to shared.mak
84 + + Makefile: move ".SUFFIXES" rule to shared.mak
85 + + Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
86 + + Makefile: disable GNU make built-in wildcard rules
87 + + Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
88 + + scalar Makefile: use "The default target of..." pattern
89
85 - Random test-framework clean-up.
86 - source: <cover-v4-0.4-00000000000-20220227T102256Z-avarab@gmail.com>
90 + Makefile refactoring with a bit of suffixes rule stripping to
91 + optimize the runtime overhead.
92 + source: <cover-v5-0.8-00000000000-20220303T160155Z-avarab@gmail.com>
93
94
89 -* ac/usage-string-fixups (2022-02-23) 1 commit
90 - (merged to 'next' on 2022-02-28 at 5e8fa3f846)
91 - + amend remaining usage strings according to style guide
95 +* ab/plug-random-leaks (2022-03-04) 14 commits
96 + (merged to 'next' on 2022-03-04 at f461b7a6b5)
97 + + repository.c: free the "path cache" in repo_clear()
98 + + range-diff: plug memory leak in read_patches()
99 + + range-diff: plug memory leak in common invocation
100 + + lockfile API users: simplify and don't leak "path"
101 + + commit-graph: stop fill_oids_from_packs() progress on error and free()
102 + + commit-graph: fix memory leak in misused string_list API
103 + + submodule--helper: fix trivial leak in module_add()
104 + + transport: stop needlessly copying bundle header references
105 + + bundle: call strvec_clear() on allocated strvec
106 + + remote-curl.c: free memory in cmd_main()
107 + + urlmatch.c: add and use a *_release() function
108 + + diff.c: free "buf" in diff_words_flush()
109 + + merge-base: free() allocated "struct commit **" list
110 + + index-pack: fix memory leaks
111
93 - Usage-string normalization.
94 - source: <f425e36b7ea4a310a8ad93d47ead4c1713117388.1645626455.git.gitgitgadget@gmail.com>
112 + Plug random memory leaks.
113 + source: <cover-v2-00.14-00000000000-20220304T182902Z-avarab@gmail.com>
114
115
97 -* ah/advice-switch-requires-detach-to-detach (2022-02-25) 1 commit
98 - (merged to 'next' on 2022-02-28 at 941ee621cf)
99 - + switch: mention the --detach option when dying due to lack of a branch
116 +* en/merge-ort-align-verbosity-with-recursive (2022-03-01) 1 commit
117 + (merged to 'next' on 2022-03-04 at e2c7eabab6)
118 + + merge-ort: exclude messages from inner merges by default
119
101 - The error message given by "git switch HEAD~4" has been clarified
102 - to suggest the "--detach" option that is required.
103 - source: <20220226061213.1590341-1-alexhenrie24@gmail.com>
120 + Align the level of verbose output from the ort backend during inner
121 + merge to that of the recursive backend.
122 + source: <pull.1167.git.1646194761463.gitgitgadget@gmail.com>
123
124
106 -* cg/t3903-modernize (2022-02-23) 3 commits
107 - (merged to 'next' on 2022-02-23 at 0d5a844b40)
108 - + tests: make the code more readable
109 - + tests: allow testing if a path is truly a file or a directory
110 - + t/t3903-stash.sh: replace test [-d|-f] with test_path_is_*
125 +* en/present-despite-skipped (2022-03-01) 7 commits
126 + (merged to 'next' on 2022-03-01 at 4982287a31)
127 + + repo_read_index: add config to expect files outside sparse patterns
128 + (merged to 'next' on 2022-02-15 at 960873fdad)
129 + + Accelerate clear_skip_worktree_from_present_files() by caching
130 + + Update documentation related to sparsity and the skip-worktree bit
131 + + repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
132 + + unpack-trees: fix accidental loss of user changes
133 + + t1011: add testcase demonstrating accidental loss of user modifications
134 + + Merge branch 'vd/sparse-clean-etc' into en/present-despite-skipped
135
112 - Test modernization.
113 - source: <20220222215430.605254-1-cogoni.guillaume@gmail.com>
136 + In sparse-checkouts, files mis-marked as missing from the working tree
137 + could lead to later problems. Such files were hard to discover, and
138 + harder to correct. Automatically detecting and correcting the marking
139 + of such files has been added to avoid these problems.
140 + source: <pull.1114.v2.git.1642175983.gitgitgadget@gmail.com>
141
142
116 -* ds/worktree-docs (2022-02-23) 11 commits
117 - (merged to 'next' on 2022-02-28 at b7d23cb1a5)
118 - + worktree: use 'worktree' over 'working tree'
119 - + worktree: use 'worktree' over 'working tree'
120 - + worktree: use 'worktree' over 'working tree'
121 - + worktree: use 'worktree' over 'working tree'
122 - + worktree: use 'worktree' over 'working tree'
123 - + worktree: use 'worktree' over 'working tree'
124 - + worktree: use 'worktree' over 'working tree'
125 - + worktree: extract checkout_worktree()
126 - + worktree: extract copy_sparse_checkout()
127 - + worktree: extract copy_filtered_worktree_config()
128 - + worktree: combine two translatable messages
143 +* fs/gpgsm-update (2022-03-04) 3 commits
144 + (merged to 'next' on 2022-03-04 at 9c72508077)
145 + + t/lib-gpg: kill all gpg components, not just gpg-agent
146 + + t/lib-gpg: reload gpg components after updating trustlist
147 + + gpg-interface/gpgsm: fix for v2.3
148
130 - Tighten the language around "working tree" and "worktree" in the
131 - docs.
132 - source: <pull.1154.v3.git.1645626559.gitgitgadget@gmail.com>
149 + Newer version of GPGSM changed its output in a backward
150 + incompatible way to break our code that parses its output. It also
151 + added more processes our tests need to kill when cleaning up.
152 + Adjustments have been made to accommodate these changes.
153 + source: <20220302090250.590450-1-fs@gigacodes.de>
154
155
135 -* en/merge-ort-plug-leaks (2022-02-20) 2 commits
136 - (merged to 'next' on 2022-02-28 at d7afb6b624)
137 - + merge-ort: fix small memory leak in unique_path()
138 - + merge-ort: fix small memory leak in detect_and_process_renames()
156 +* gc/parse-tree-indirect-errors (2022-03-01) 1 commit
157 + (merged to 'next' on 2022-03-04 at f8d60e5253)
158 + + checkout, clone: die if tree cannot be parsed
159
140 - Leakfix.
141 - source: <pull.1152.v2.git.1645320591.gitgitgadget@gmail.com>
160 + Check the return value from parse_tree_indirect() to turn segfaults
161 + into calls to die().
162 + source: <20220302003613.15567-1-chooglen@google.com>
163
164
144 -* en/sparse-checkout-fixes (2022-02-20) 5 commits
145 - (merged to 'next' on 2022-02-28 at 7307431c62)
146 - + sparse-checkout: reject arguments in cone-mode that look like patterns
147 - + sparse-checkout: error or warn when given individual files
148 - + sparse-checkout: pay attention to prefix for {set, add}
149 - + sparse-checkout: correctly set non-cone mode when expected
150 - + sparse-checkout: correct reapply's handling of options
165 +* hn/reftable-no-empty-keys (2022-02-23) 7 commits
166 + (merged to 'next' on 2022-03-01 at dc4aa7e796)
167 + + reftable: rename writer_stats to reftable_writer_stats
168 + + reftable: add test for length of disambiguating prefix
169 + + reftable: ensure that obj_id_len is >= 2 on writing
170 + + reftable: avoid writing empty keys at the block layer
171 + + reftable: add a test that verifies that writing empty keys fails
172 + + reftable: reject 0 object_id_len
173 + + Documentation: object_id_len goes up to 31
174
152 - Further polishing of "git sparse-checkout".
153 - source: <pull.1118.v5.git.1645289086.gitgitgadget@gmail.com>
175 + General clean-up in reftable implementation, including
176 + clarification of the API documentation, tightening the code to
177 + honor documented length limit, etc.
178 + source: <pull.1185.v3.git.git.1645469170.gitgitgadget@gmail.com>
179
180
156 -* gc/stash-on-branch-with-multi-level-name (2022-02-24) 1 commit
157 - (merged to 'next' on 2022-02-28 at 1a94306611)
158 - + stash: strip "refs/heads/" with skip_prefix
181 +* jc/cat-file-batch-commands (2022-02-18) 4 commits
182 + (merged to 'next' on 2022-03-01 at 8764b7963c)
183 + + cat-file: add --batch-command mode
184 + + cat-file: add remove_timestamp helper
185 + + cat-file: introduce batch_mode enum to replace print_contents
186 + + cat-file: rename cmdmode to transform_mode
187
160 - "git checkout -b branch/with/multi/level/name && git stash" only
161 - recorded the last level component of the branch name, which has
162 - been corrected.
163 - source: <20220124205342.41450-1-chooglen@google.com>
188 + "git cat-file" learns "--batch-command" mode, which is a more
189 + flexible interface than the existing "--batch" or "--batch-check"
190 + modes, to allow different kinds of inquiries made.
191 + source: <pull.1212.v10.git.git.1645208594.gitgitgadget@gmail.com>
192
193
166 -* jc/rerere-train-modernise (2022-02-27) 1 commit
167 - (merged to 'next' on 2022-02-28 at d86d29733d)
168 - + rerere-train: two fixes to the use of "git show -s"
194 +* nj/read-tree-doc-reffix (2022-03-03) 1 commit
195 + (merged to 'next' on 2022-03-04 at 9b183b3e3e)
196 + + Documentation: git-read-tree: separate links using commas
197
170 - Small modernization of the rerere-train script (in contrib/).
171 - source: <20220227220924.2144325-1-gitster@pobox.com>
198 + Documentation mark-up fix.
199 + source: <20220303161542.11616-1-nihal@nihaljere.xyz>
200
201
174 -* jt/ls-files-stage-recurse (2022-02-23) 1 commit
175 - (merged to 'next' on 2022-02-28 at 4ad82bfdf6)
176 - + ls-files: support --recurse-submodules --stage
202 +* ps/fetch-atomic (2022-02-17) 7 commits
203 + (merged to 'next' on 2022-02-18 at 3824153b23)
204 + + fetch: make `--atomic` flag cover pruning of refs
205 + + fetch: make `--atomic` flag cover backfilling of tags
206 + + refs: add interface to iterate over queued transactional updates
207 + + fetch: report errors when backfilling tags fails
208 + + fetch: control lifecycle of FETCH_HEAD in a single place
209 + + fetch: backfill tags before setting upstream
210 + + fetch: increase test coverage of fetches
211 + (this branch is used by ps/fetch-atomic-fixup and ps/fetch-mirror-optim.)
212
178 - Many output modes of "ls-files" do not work with its
179 - "--recurse-submodules" option, but the "-s" mode has been taught to
180 - work with it.
181 - source: <20220224002303.2363189-1-jonathantanmy@google.com>
213 + "git fetch" can make two separate fetches, but ref updates coming
214 + from them were in two separate ref transactions under "--atomic",
215 + which has been corrected.
216 + source: <cover.1645102965.git.ps@pks.im>
217
218
184 -* mc/index-pack-report-max-size (2022-02-23) 1 commit
185 - (merged to 'next' on 2022-02-28 at 31b907844b)
186 - + index-pack: clarify the breached limit
219 +* ps/fetch-atomic-fixup (2022-03-03) 1 commit
220 + (merged to 'next' on 2022-03-04 at cb279e84df)
221 + + t5503: simplify setup of test which exercises failure of backfill
222 + (this branch uses ps/fetch-atomic.)
223
188 - When "index-pack" dies due to incoming data exceeding the maximum
189 - allowed input size, include the value of the limit in the error
190 - message.
191 - source: <pull.1158.v2.git.1645661240356.gitgitgadget@gmail.com>
224 + Test simplification.
225 + source: <cover.1645102965.git.ps@pks.im>
226
227
194 -* rs/bisect-executable-not-found (2022-01-19) 4 commits
195 - (merged to 'next' on 2022-02-28 at c74bff7954)
196 - + bisect--helper: double-check run command on exit code 126 and 127
197 - + bisect: document run behavior with exit codes 126 and 127
198 - + bisect--helper: release strbuf and strvec on run error
199 - + bisect--helper: report actual bisect_state() argument on error
228 +* pw/xdiff-alloc-fail (2022-02-16) 4 commits
229 + (merged to 'next' on 2022-03-01 at 8a10912059)
230 + + xdiff: handle allocation failure when merging
231 + + xdiff: refactor a function
232 + + xdiff: handle allocation failure in patience diff
233 + + xdiff: fix a memory leak
234
201 - A not-so-common mistake is to write a script to feed "git bisect
202 - run" without making it executable, in which case all tests will
203 - exit with 126 or 127 error codes, even on revisions that are marked
204 - as good. Try to recognize this situation and stop iteration early.
205 - source: <fead25d6-6f5f-487a-ad4c-0657fe9785fd@www.fastmail.com>
235 + Improve failure case behaviour of xdiff library when memory
236 + allocation fails.
237 + source: <pull.1140.v2.git.1645006510.gitgitgadget@gmail.com>
238
239 --------------------------------------------------
240 [New Topics]
241
210 -* ab/grep-patterntype (2022-03-04) 1 commit
211 - - log tests: fix "abort tests early" regression in ff37a60c369
242 +* bc/block-sha1-without-gcc-asm-extension (2022-03-10) 1 commit
243 + - block-sha1: remove use of obsolete x86 assembly
244
213 - Test fix-up for a topic already in master.
245 + Get rid of one use of __asm__() GCC extension that does not help us
246 + much these days, which has an added advantage of not having to
247 + worry about -pedantic complaining.
248
215 - Will merge to 'next' and then to 'master'.
216 - source: <patch-1.1-3b41c1a26d4-20220304T093323Z-avarab@gmail.com>
249 + Will merge to 'next'.
250 + source: <20220310174750.4166514-1-sandals@crustytoothpaste.net>
251
252
219 -* mf/fix-type-in-config-h (2022-03-03) 1 commit
220 - - config: correct "--type" option in "git config -h" output
253 +* jy/gitweb-no-need-for-meta (2022-03-08) 2 commits
254 + (merged to 'next' on 2022-03-13 at 1e8d643130)
255 + + gitweb: remove invalid http-equiv="content-type"
256 + + comment: fix typo
257 +
258 + Remove unneeded <meta http-equiv=content-type...> from gitweb
259 + output.
260 +
261 + Will merge to 'master'.
262 + source: <20220308155612.105957-3-jason@jasonyundt.email>
263 +
264 +
265 +* ns/core-fsyncmethod (2022-03-10) 6 commits
266 + - core.fsync: documentation and user-friendly aggregate options
267 + - core.fsync: new option to harden the index
268 + - core.fsync: add configuration parsing
269 + - core.fsync: introduce granular fsync control infrastructure
270 + - core.fsyncmethod: add writeout-only mode
271 + - wrapper: make inclusion of Windows csprng header tightly scoped
272 + (this branch is used by ps/fsync-refs.)
273 +
274 + Replace core.fsyncObjectFiles with two new configuration variables,
275 + core.fsync and core.fsyncMethod.
276 +
277 + Will merge to 'next'?
278 + source: <pull.1093.v6.git.1646952204.gitgitgadget@gmail.com>
279
222 - "git config -h" did not describe the "--type" option correctly.
280 +
281 +* pw/add-p-single-key (2022-03-09) 5 commits
282 + - terminal: restore settings on SIGTSTP
283 + - terminal: work around macos poll() bug
284 + - terminal: don't assume stdin is /dev/tty
285 + - terminal: use flags for save_term()
286 + - Merge branch 'pw/single-key-interactive' into pw/add-p-single-key
287 + (this branch uses pw/single-key-interactive.)
288 +
289 + Finishing touches to C rewrite of "git add -i" in single-key
290 + interactive mode.
291 +
292 + Expecting a reroll.
293 + cf. <a1e51433-71b1-b32d-0475-192b83bac43a@gmail.com>
294 + source: <20220309110325.36917-1-phillip.wood123@gmail.com>
295 +
296 +
297 +* ab/reflog-prep-fix (2022-03-13) 1 commit
298 + - reflog: don't be noisy on empty reflogs
299 +
300 + Regression fix.
301
302 Will merge to 'next'.
225 - source: <pull.1220.v2.git.git.1646368313714.gitgitgadget@gmail.com>
303 + source: <de5e2b0e290791d0a4f58a893d8571b5fc8c4f1a.1646952843.git.avarab@gmail.com>
304
305
228 -* ab/racy-hooks (2022-03-07) 2 commits
229 - - hooks: fix an obscure TOCTOU "did we just run a hook?" race
230 - - merge: don't run post-hook logic on --no-verify
306 +* en/sparse-cone-becomes-default (2022-03-13) 9 commits
307 + - Documentation: some sparsity wording clarifications
308 + - git-sparse-checkout.txt: mark non-cone mode as deprecated
309 + - git-sparse-checkout.txt: flesh out non-cone mode pattern discussion a bit
310 + - git-sparse-checkout.txt: add a new EXAMPLES section
311 + - git-sparse-checkout.txt: shuffle some sections and mark as internal
312 + - git-sparse-checkout.txt: update docs for deprecation of 'init'
313 + - git-sparse-checkout.txt: wording updates for the cone mode default
314 + - sparse-checkout: make --cone the default
315 + - tests: stop assuming --no-cone is the default mode for sparse-checkout
316 +
317 + source: <pull.1148.v2.git.1647054681.gitgitgadget@gmail.com>
318
232 - Code clean-up to allow callers of run_commit_hook() to learn if it
233 - got "success" because the hook succeeded or because there wasn't
234 - any hook.
319 +
320 +* ep/remove-duplicated-includes (2022-03-14) 6 commits
321 + - attr.h: remove duplicate struct definition
322 + - t/helper/test-run-command.c: delete duplicate include
323 + - builtin/stash.c: delete duplicate include
324 + - builtin/sparse-checkout.c: delete duplicate include
325 + - builtin/gc.c: delete duplicate include
326 + - attr.c: delete duplicate include
327 +
328 + Code clean-up.
329
330 Will merge to 'next'.
237 - source: <cover-v2-0.2-00000000000-20220307T123244Z-avarab@gmail.com>
331 + source: <20220313195536.224075-1-gitter.spiros@gmail.com>
332
333
240 -* ab/string-list-count-in-size-t (2022-03-07) 2 commits
241 - - string-list API: change "nr" and "alloc" to "size_t"
242 - - gettext API users: don't explicitly cast ngettext()'s "n"
334 +* ep/t6423-modernize (2022-03-13) 1 commit
335 + - t6423-merge-rename-directories.sh: use the $(...) construct
336 +
337 + Code clean-up.
338 +
339 + Will merge to 'next'.
340 + source: <20220313172829.215517-1-gitter.spiros@gmail.com>
341
244 - Count string_list items in size_t, not "unsigned int".
342 +
343 +* jc/rebase-detach-fix (2022-03-13) 2 commits
344 + - rebase: set REF_HEAD_DETACH in checkout_up_to_date()
345 + - rebase: use test_commit helper in setup
346 +
347 + "git rebase $base $non_branch_commit", when $base is an ancestor or
348 + the $non_branch_commit, modified the current branch, which has been
349 + corrected.
350
351 Will merge to 'next'?
247 - source: <cover-v2-0.2-00000000000-20220307T152316Z-avarab@gmail.com>
352 + source: <pull.1226.v2.git.git.1647019492.gitgitgadget@gmail.com>
353 +
354 +
355 +* jh/builtin-fsmonitor-part-2plus (2022-03-13) 16 commits
356 + - fsmonitor-settings: simplify initialization of settings data
357 + - fsmonitor--daemon: add _() to calls to error()
358 + - fsmonitor--daemon: add _() to calls to die()
359 + - compat/fsmonitor/fsm-listen-win32: add _() to calls to error()
360 + - compat/fsmonitor/fsm-listen-darwin: add _() to calls to error()
361 + - fsmonitor-ipc: add _() to calls to die()
362 + - t7527: delete unused verify_status() function
363 + - t7527: fix && chaining in matrix_try()
364 + - t7527: add parameters to start_daemon to handle args and subshell
365 + - t/perf/p7519: cleanup coding style
366 + - t/perf/p7519: use grep rather than egrep in test
367 + - fsmonitor--daemon: refactor cookie handling for readability
368 + - t/helper/fsmonitor-client: cleanup call to parse_options()
369 + - compat/fsmonitor/fsm-listen-darwin: split out GCC-specific declarations
370 + - update-index: convert advise() messages back to warning()
371 + - t/test-lib: avoid using git on LHS of pipe
372 + (this branch uses jh/builtin-fsmonitor-part2.)
373
249 ---------------------------------------------------
250 -[Stalled]
374 + Various small fixes and cleanups on part-2 of the same topic.
375
252 -* tl/ls-tree-oid-only (2022-03-04) 12 commits
253 - - ls-tree: support --object-only option for "git-ls-tree"
254 - - ls-tree: introduce "--format" option
255 - - cocci: allow padding with `strbuf_addf()`
256 - - ls-tree: introduce struct "show_tree_data"
257 - - ls-tree: slightly refactor `show_tree()`
258 - - ls-tree: fix "--name-only" and "--long" combined use bug
259 - - ls-tree: simplify nesting if/else logic in "show_tree()"
260 - - ls-tree: rename "retval" to "recurse" in "show_tree()"
261 - - ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
262 - - ls-tree: use "enum object_type", not {blob,tree,commit}_type
263 - - ls-tree: add missing braces to "else" arms
264 - - ls-tree: remove commented-out code
376 + Needs review.
377 + source: <pull.1174.git.1647033303.gitgitgadget@gmail.com>
378
266 - "git ls-tree" learns "--oid-only" option, similar to "--name-only",
267 - and more generalized "--format" option.
268 - source: <cover.1646390152.git.dyroneteng@gmail.com>
379
380 +* ps/fsync-refs (2022-03-12) 2 commits
381 + - core.fsync: new option to harden references
382 + - Merge branch 'ns/core-fsyncmethod' into ps/fsync-refs
383 + (this branch uses ns/core-fsyncmethod.)
384 +
385 + Updates to refs traditionally weren't fsync'ed, but we can
386 + configure using core.fsync variable to do so.
387 +
388 + Will merge to 'next'?
389 + source: <47dd79106b93bb81750320d50ccaa74c24aacd28.1646992380.git.ps@pks.im>
390 +
391 +
392 +* vd/stash-silence-reset (2022-03-13) 5 commits
393 + - stash: make internal resets quiet and refresh index
394 + - reset: suppress '--no-refresh' advice if logging is silenced
395 + - reset: replace '--quiet' with '--no-refresh' in performance advice
396 + - reset: introduce --[no-]refresh option to --mixed
397 + - reset: revise index refresh advice
398 +
399 + "git stash" does not allow subcommands it internally runs as its
400 + implementation detail, except for "git reset", to emit messages;
401 + now "git reset" part has also been squelched.
402 +
403 + Will merge to 'next'.
404 + source: <pull.1170.git.1647043729.gitgitgadget@gmail.com>
405 +
406 +--------------------------------------------------
407 +[Stalled]
408
409 * je/http-better-error-output (2021-12-03) 1 commit
410 . http-backend: give a hint that web browser access is not supported
@@ -297,39 +435,105 @@ Release tarballs are available at:
435 cf. <CAPUEsphktbdxeV7hvF52Or3CVHS8oOk5-WV=xfEZa8kfCVVnVg@mail.gmail.com>
436 source: <20211202035446.1154-1-carenas@gmail.com>
437
300 ---------------------------------------------------
301 -[Cooking]
438 +--------------------------------------------------
439 +[Cooking]
440 +
441 +* tl/ls-tree-oid-only (2022-03-04) 12 commits
442 + - ls-tree: support --object-only option for "git-ls-tree"
443 + - ls-tree: introduce "--format" option
444 + - cocci: allow padding with `strbuf_addf()`
445 + - ls-tree: introduce struct "show_tree_data"
446 + - ls-tree: slightly refactor `show_tree()`
447 + - ls-tree: fix "--name-only" and "--long" combined use bug
448 + - ls-tree: simplify nesting if/else logic in "show_tree()"
449 + - ls-tree: rename "retval" to "recurse" in "show_tree()"
450 + - ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
451 + - ls-tree: use "enum object_type", not {blob,tree,commit}_type
452 + - ls-tree: add missing braces to "else" arms
453 + - ls-tree: remove commented-out code
454 +
455 + "git ls-tree" learns "--oid-only" option, similar to "--name-only",
456 + and more generalized "--format" option.
457 + source: <cover.1646390152.git.dyroneteng@gmail.com>
458 +
459 +
460 +* ab/grep-patterntype (2022-03-04) 1 commit
461 + (merged to 'next' on 2022-03-08 at 407dcd1f5d)
462 + + log tests: fix "abort tests early" regression in ff37a60c369
463 +
464 + Test fix-up for a topic already in master.
465 +
466 + Will merge to 'master'.
467 + source: <patch-1.1-3b41c1a26d4-20220304T093323Z-avarab@gmail.com>
468 +
469 +
470 +* mf/fix-type-in-config-h (2022-03-03) 1 commit
471 + (merged to 'next' on 2022-03-08 at a914e267f2)
472 + + config: correct "--type" option in "git config -h" output
473 +
474 + "git config -h" did not describe the "--type" option correctly.
475 +
476 + Will merge to 'master'.
477 + source: <pull.1220.v2.git.git.1646368313714.gitgitgadget@gmail.com>
478 +
479 +
480 +* ab/racy-hooks (2022-03-07) 2 commits
481 + (merged to 'next' on 2022-03-08 at 07188be733)
482 + + hooks: fix an obscure TOCTOU "did we just run a hook?" race
483 + + merge: don't run post-hook logic on --no-verify
484 +
485 + Code clean-up to allow callers of run_commit_hook() to learn if it
486 + got "success" because the hook succeeded or because there wasn't
487 + any hook.
488 +
489 + Will merge to 'master'.
490 + source: <cover-v2-0.2-00000000000-20220307T123244Z-avarab@gmail.com>
491 +
492 +
493 +* ab/string-list-count-in-size-t (2022-03-07) 2 commits
494 + (merged to 'next' on 2022-03-08 at 3458b5c278)
495 + + string-list API: change "nr" and "alloc" to "size_t"
496 + + gettext API users: don't explicitly cast ngettext()'s "n"
497 +
498 + Count string_list items in size_t, not "unsigned int".
499 +
500 + Will merge to 'master'.
501 + source: <cover-v2-0.2-00000000000-20220307T152316Z-avarab@gmail.com>
502 +
503
303 -* jd/userdiff-kotlin (2022-03-06) 1 commit
504 +* jd/userdiff-kotlin (2022-03-12) 1 commit
505 - userdiff: add builtin diff driver for kotlin language.
506
507 A new built-in userdiff driver for kotlin.
307 - source: <20220306111031.335489-2-jaydeepjd.8914@gmail.com>
508 +
509 + Will merge to 'next'.
510 + source: <20220312044832.718356-1-jaydeepjd.8914@gmail.com>
511
512
513 * ps/fetch-mirror-optim (2022-03-01) 6 commits
311 - - refs/files-backend: optimize reading of symbolic refs
312 - - remote: read symbolic refs via `refs_read_symbolic_ref()`
313 - - refs: add ability for backends to special-case reading of symbolic refs
314 - - fetch: avoid lookup of commits when not appending to FETCH_HEAD
315 - - upload-pack: look up "want" lines via commit-graph
316 - - Merge branch 'ps/fetch-atomic' into ps/fetch-mirror-optim
317 - (this branch uses ps/fetch-atomic.)
514 + (merged to 'next' on 2022-03-08 at 60aae8731c)
515 + + refs/files-backend: optimize reading of symbolic refs
516 + + remote: read symbolic refs via `refs_read_symbolic_ref()`
517 + + refs: add ability for backends to special-case reading of symbolic refs
518 + + fetch: avoid lookup of commits when not appending to FETCH_HEAD
519 + + upload-pack: look up "want" lines via commit-graph
520 + + Merge branch 'ps/fetch-atomic' into ps/fetch-mirror-optim
521
522 Various optimization for "git fetch".
523
321 - Will merge to 'next'.
524 + Will merge to 'master'.
525 source: <cover.1646127015.git.ps@pks.im>
526
527
528 * tk/t7063-chmtime-dirs-too (2022-03-01) 2 commits
326 - - t7063: mtime-mangling instead of delays in untracked cache testing
327 - - t/helper/test-chmtime: update mingw to support chmtime on directories
529 + (merged to 'next' on 2022-03-08 at 99c954903d)
530 + + t7063: mtime-mangling instead of delays in untracked cache testing
531 + + t/helper/test-chmtime: update mingw to support chmtime on directories
532
533 Teach "test-chmtime" to work on a directory and use it to avoid
534 having to wait for a second in a few places in tests.
535
332 - Will merge to 'next'.
536 + Will merge to 'master'.
537 source: <pull.1166.v3.git.1646201124.gitgitgadget@gmail.com>
538
539
@@ -347,86 +551,45 @@ Release tarballs are available at:
551
552 Update tests around the use of hook scripts.
553
350 - Will merge to 'next'?
554 + Needs a (hopefully) final eyeballing.
555 source: <cover-v2-00.10-00000000000-20220307T123909Z-avarab@gmail.com>
556
557
558 * ab/keep-git-exit-codes-in-tests (2022-03-07) 15 commits
355 - - rev-list simplify tests: don't ignore "git" exit code
356 - - checkout tests: don't ignore "git <cmd>" exit code
357 - - apply tests: don't ignore "git ls-files" exit code, drop sub-shell
358 - - gettext tests: don't ignore "test-tool regex" exit code
359 - - rev-list tests: don't hide abort() in "test_expect_failure"
360 - - diff tests: don't ignore "git rev-list" exit code
361 - - notes tests: don't ignore "git" exit code
362 - - rev-parse tests: don't ignore "git reflog" exit code
363 - - merge tests: use "test_must_fail" instead of ad-hoc pattern
364 - - apply tests: use "test_must_fail" instead of ad-hoc pattern
365 - - diff tests: don't ignore "git diff" exit code in "read" loop
366 - - diff tests: don't ignore "git diff" exit code
367 - - read-tree tests: check "diff-files" exit code on failure
368 - - tests: use "test_stdout_line_count", not "test $(git [...] | wc -l)"
369 - - tests: change some 'test $(git) = "x"' to test_cmp
559 + (merged to 'next' on 2022-03-08 at bf89509f4c)
560 + + rev-list simplify tests: don't ignore "git" exit code
561 + + checkout tests: don't ignore "git <cmd>" exit code
562 + + apply tests: don't ignore "git ls-files" exit code, drop sub-shell
563 + + gettext tests: don't ignore "test-tool regex" exit code
564 + + rev-list tests: don't hide abort() in "test_expect_failure"
565 + + diff tests: don't ignore "git rev-list" exit code
566 + + notes tests: don't ignore "git" exit code
567 + + rev-parse tests: don't ignore "git reflog" exit code
568 + + merge tests: use "test_must_fail" instead of ad-hoc pattern
569 + + apply tests: use "test_must_fail" instead of ad-hoc pattern
570 + + diff tests: don't ignore "git diff" exit code in "read" loop
571 + + diff tests: don't ignore "git diff" exit code
572 + + read-tree tests: check "diff-files" exit code on failure
573 + + tests: use "test_stdout_line_count", not "test $(git [...] | wc -l)"
574 + + tests: change some 'test $(git) = "x"' to test_cmp
575
576 Updates tests around the use of "test $(git cmd) = constant".
577
373 - Will merge to 'next'?
374 - source: <cover-v2-00.15-00000000000-20220307T124817Z-avarab@gmail.com>
375 -
376 -
377 -* ab/plug-random-leaks (2022-03-04) 14 commits
378 - (merged to 'next' on 2022-03-04 at f461b7a6b5)
379 - + repository.c: free the "path cache" in repo_clear()
380 - + range-diff: plug memory leak in read_patches()
381 - + range-diff: plug memory leak in common invocation
382 - + lockfile API users: simplify and don't leak "path"
383 - + commit-graph: stop fill_oids_from_packs() progress on error and free()
384 - + commit-graph: fix memory leak in misused string_list API
385 - + submodule--helper: fix trivial leak in module_add()
386 - + transport: stop needlessly copying bundle header references
387 - + bundle: call strvec_clear() on allocated strvec
388 - + remote-curl.c: free memory in cmd_main()
389 - + urlmatch.c: add and use a *_release() function
390 - + diff.c: free "buf" in diff_words_flush()
391 - + merge-base: free() allocated "struct commit **" list
392 - + index-pack: fix memory leaks
393 -
394 - Plug random memory leaks.
395 -
396 - Will merge to 'master'.
397 - source: <cover-v2-00.14-00000000000-20220304T182902Z-avarab@gmail.com>
398 -
399 -
400 -* en/merge-ort-align-verbosity-with-recursive (2022-03-01) 1 commit
401 - (merged to 'next' on 2022-03-04 at e2c7eabab6)
402 - + merge-ort: exclude messages from inner merges by default
403 -
404 - Align the level of verbose output from the ort backend during inner
405 - merge to that of the recursive backend.
406 -
578 Will merge to 'master'.
408 - source: <pull.1167.git.1646194761463.gitgitgadget@gmail.com>
579 + source: <cover-v2-00.15-00000000000-20220307T124817Z-avarab@gmail.com>
580
581
411 -* ep/test-malloc-check-with-glibc-2.34 (2022-03-04) 1 commit
412 - - test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
582 +* ep/test-malloc-check-with-glibc-2.34 (2022-03-09) 2 commits
583 + (merged to 'next' on 2022-03-12 at 13ed9014e6)
584 + + test-lib: declare local variables as local
585 + (merged to 'next' on 2022-03-08 at 810ac5a1d3)
586 + + test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
587
588 The method to trigger malloc check used in our tests no longer work
589 with newer versions of glibc.
590
417 - Will merge to 'next'.
418 - source: <20220304133702.26706-1-gitter.spiros@gmail.com>
419 -
420 -
421 -* gc/parse-tree-indirect-errors (2022-03-01) 1 commit
422 - (merged to 'next' on 2022-03-04 at f8d60e5253)
423 - + checkout, clone: die if tree cannot be parsed
424 -
425 - Check the return value from parse_tree_indirect() to turn segfaults
426 - into calls to die().
427 -
591 Will merge to 'master'.
429 - source: <20220302003613.15567-1-chooglen@google.com>
592 + source: <81f43fbefde84ab7af9ee2ac760845b728a48ab5.1646861976.git.git@grubix.eu>
593
594
595 * jc/mailsplit-warn-on-tty (2022-03-03) 1 commit
@@ -439,37 +602,17 @@ Release tarballs are available at:
602
603
604 * jc/stash-drop (2022-03-02) 3 commits
442 - - stash: call reflog_delete() in reflog.c
443 - - reflog: libify delete reflog function and helpers
444 - - stash: add tests to ensure reflog --rewrite --updatref behavior
605 + (merged to 'next' on 2022-03-08 at 4073dcf05c)
606 + + stash: call reflog_delete() in reflog.c
607 + + reflog: libify delete reflog function and helpers
608 + + stash: add tests to ensure reflog --rewrite --updatref behavior
609
610 "git stash drop" is reimplemented as an internal call to
611 reflog_delete() function, instead of invoking "git reflog delete"
612 via run_command() API.
613
450 - Will merge to 'next'.
451 - source: <pull.1218.v4.git.git.1646260044.gitgitgadget@gmail.com>
452 -
453 -
454 -* nj/read-tree-doc-reffix (2022-03-03) 1 commit
455 - (merged to 'next' on 2022-03-04 at 9b183b3e3e)
456 - + Documentation: git-read-tree: separate links using commas
457 -
458 - Documentation mark-up fix.
459 -
614 Will merge to 'master'.
461 - source: <20220303161542.11616-1-nihal@nihaljere.xyz>
462 -
463 -
464 -* ps/fetch-atomic-fixup (2022-03-03) 1 commit
465 - (merged to 'next' on 2022-03-04 at cb279e84df)
466 - + t5503: simplify setup of test which exercises failure of backfill
467 - (this branch uses ps/fetch-atomic.)
468 -
469 - Test simplification.
470 -
471 - Will merge to 'master' together with ps/fetch-atomic.
472 - source: <cover.1645102965.git.ps@pks.im>
615 + source: <pull.1218.v4.git.git.1646260044.gitgitgadget@gmail.com>
616
617
618 * tb/cruft-packs (2022-03-02) 17 commits
@@ -495,20 +638,22 @@ Release tarballs are available at:
638 instead of ejecting them into loose form to be reclaimed later, has
639 been introduced.
640
498 - Will merge to 'next'.
641 + Waiting for discussion to settle.
642 + cf. <YiZI99yeijQe5Jaq@google.com>
643 source: <cover.1646266835.git.me@ttaylorr.com>
644
645
646 * tb/rename-remote-progress (2022-03-03) 2 commits
503 - - builtin/remote.c: show progress when renaming remote references
504 - - builtin/remote.c: parse options in 'rename'
647 + (merged to 'next' on 2022-03-08 at adff4dbd86)
648 + + builtin/remote.c: show progress when renaming remote references
649 + + builtin/remote.c: parse options in 'rename'
650
651 "git remote rename A B", depending on the number of remote-tracking
652 refs involved, takes long time renaming them. The command has been
653 taught to show progress bar while making the user wait.
654
510 - Will merge to 'next'?
511 - source: <d5b0a4b71027619123b7284611692d3a9c128518.1646346287.git.me@ttaylorr.com>
655 + Will merge to 'master'.
656 + source: <cover.1646346286.git.me@ttaylorr.com>
657
658
659 * js/ci-github-workflow-markup (2022-03-01) 9 commits
@@ -525,22 +670,22 @@ Release tarballs are available at:
670 Update the GitHub workflow support to make it quicker to get to the
671 failing test.
672
528 - Will merge to 'next'?
673 + Waiting for discussion to settle.
674 + cf. <220309.86tuc6lwpj.gmgdl@evledraar.gmail.com>
675 cf. <220302.86mti87cj2.gmgdl@evledraar.gmail.com>
676 cf. <30dbc8fb-a1db-05bc-3dcb-070e11cf4715@gmail.com>
677 source: <pull.1117.v2.git.1646130289.gitgitgadget@gmail.com>
678
679
534 -* jk/name-rev-w-genno (2022-02-28) 1 commit
680 +* jk/name-rev-w-genno (2022-03-13) 1 commit
681 - name-rev: use generation numbers if available
682
683 "git name-rev" learned to use the generation numbers when setting
684 the lower bound of searching commits used to explain the revision,
685 when available, instead of committer time.
686
541 - Breaks linux-TEST-vars job at CI?
542 - cf. <xmqqilsvet82.fsf@gitster.g>
543 - source: <20220228215025.325904-2-jacob.e.keller@intel.com>
687 + Will merge to 'next'.
688 + source: <20220312000015.3643427-1-jacob.e.keller@intel.com>
689
690
691 * et/xdiff-indirection (2022-02-17) 1 commit
@@ -554,44 +699,17 @@ Release tarballs are available at:
699 source: <20220217225408.GB7@edef91d97c94>
700
701
557 -* ab/c99-variadic-macros (2022-02-21) 2 commits
558 - (merged to 'next' on 2022-03-01 at 0419a86e23)
559 - + C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
560 - + git-compat-util.h: clarify GCC v.s. C99-specific in comment
561 -
562 - Remove the escape hatch we added when we introduced the weather
563 - balloon to use variadic macros unconditionally, to make it official
564 - that we now have a hard dependency on the feature.
565 -
566 - Will merge to 'master'.
567 - source: <cover-v4-0.2-00000000000-20220221T160440Z-avarab@gmail.com>
568 -
569 -
570 -* ab/help-fixes (2022-02-23) 9 commits
571 - (merged to 'next' on 2022-03-01 at 215f5dbbfb)
572 - + help: don't print "\n" before single-section output
573 - + help: add --no-[external-commands|aliases] for use with --all
574 - + help: error if [-a|-g|-c] and [-i|-m|-w] are combined
575 - + help: correct usage & behavior of "git help --all"
576 - + help: note the option name on option incompatibility
577 - + help.c: split up list_all_cmds_help() function
578 - + help tests: test "git" and "git help [-a|-g] spacing
579 - + help.c: use puts() instead of printf{,_ln}() for consistency
580 - + help doc: add missing "]" to "[-a|--all]"
581 -
582 - Updates to how command line options to "git help" are handled.
583 -
584 - Will merge to 'master'.
585 - source: <cover-v2-0.9-00000000000-20220221T193708Z-avarab@gmail.com>
586 -
587 -
588 -* sm/no-git-in-upstream-of-pipe-in-tests (2022-02-23) 1 commit
589 - - t0003: avoid pipes with Git on LHS
702 +* sm/no-git-in-upstream-of-pipe-in-tests (2022-03-12) 3 commits
703 + (merged to 'next' on 2022-03-12 at 9e6f538b36)
704 + + t0030-t0050: avoid pipes with Git on LHS
705 + + t0001-t0028: avoid pipes with Git on LHS
706 + (merged to 'next' on 2022-03-08 at 3ff4e5c09c)
707 + + t0003: avoid pipes with Git on LHS
708
709 Test fixes.
710
593 - Will merge to 'next'.
594 - source: <20220223115347.3083-3-shivam828787@gmail.com>
711 + Will merge to 'master'.
712 + source: <20220223115347.3083-1-shivam828787@gmail.com>
713
714
715 * ab/http-gcc-12-workaround (2022-02-25) 1 commit
@@ -601,74 +719,45 @@ Release tarballs are available at:
719 source: <patch-v2-1.1-777838267a5-20220225T090816Z-avarab@gmail.com>
720
721
604 -* ab/make-optim-noop (2022-03-03) 8 commits
605 - (merged to 'next' on 2022-03-04 at 0419394f3d)
606 - + Makefiles: add and use wildcard "mkdir -p" template
607 - + Makefile: add "$(QUIET)" boilerplate to shared.mak
608 - + Makefile: move $(comma), $(empty) and $(space) to shared.mak
609 - + Makefile: move ".SUFFIXES" rule to shared.mak
610 - + Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
611 - + Makefile: disable GNU make built-in wildcard rules
612 - + Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
613 - + scalar Makefile: use "The default target of..." pattern
614 -
615 - Makefile refactoring with a bit of suffixes rule stripping to
616 - optimize the runtime overhead.
617 -
618 - Will merge to 'master'.
619 - source: <cover-v5-0.8-00000000000-20220303T160155Z-avarab@gmail.com>
620 -
621 -
722 * ds/commit-graph-gen-v2-fixes (2022-03-07) 6 commits
623 - - commit-graph: declare bankruptcy on GDAT chunks
624 - - commit-graph: fix generation number v2 overflow values
625 - - commit-graph: start parsing generation v2 (again)
626 - - commit-graph: fix ordering bug in generation numbers
627 - - t5318: extract helpers to lib-commit-graph.sh
628 - - test-read-graph: include extra post-parse info
723 + (merged to 'next' on 2022-03-08 at 36dd214bc2)
724 + + commit-graph: declare bankruptcy on GDAT chunks
725 + + commit-graph: fix generation number v2 overflow values
726 + + commit-graph: start parsing generation v2 (again)
727 + + commit-graph: fix ordering bug in generation numbers
728 + + t5318: extract helpers to lib-commit-graph.sh
729 + + test-read-graph: include extra post-parse info
730
731 Fixes to the way generation number v2 in the commit-graph files are
732 (not) handled.
733
633 - Will merge to 'next'.
734 + Will merge to 'master'.
735 source: <pull.1163.v3.git.1646164112.gitgitgadget@gmail.com>
736
737
637 -* ds/partial-bundles (2022-03-07) 12 commits
638 - - clone: fail gracefully when cloning filtered bundle
639 - - bundle: unbundle promisor packs
640 - - bundle: create filtered bundles
641 - - rev-list: move --filter parsing into revision.c
642 - - bundle: parse filter capability
643 - - bundle: safely handle --objects option
644 - - MyFirstObjectWalk: update recommended usage
645 - - list-objects: consolidate traverse_commit_list[_filtered]
646 - - pack-bitmap: drop filter in prepare_bitmap_walk()
647 - - pack-objects: use rev.filter when possible
648 - - revision: put object filter into struct rev_info
649 - - index-pack: document and test the --promisor option
738 +* ds/partial-bundles (2022-03-09) 13 commits
739 + (merged to 'next' on 2022-03-13 at 03529eaa59)
740 + + clone: fail gracefully when cloning filtered bundle
741 + + bundle: unbundle promisor packs
742 + + bundle: create filtered bundles
743 + + rev-list: move --filter parsing into revision.c
744 + + bundle: parse filter capability
745 + + list-objects: handle NULL function pointers
746 + + MyFirstObjectWalk: update recommended usage
747 + + list-objects: consolidate traverse_commit_list[_filtered]
748 + + pack-bitmap: drop filter in prepare_bitmap_walk()
749 + + pack-objects: use rev.filter when possible
750 + + revision: put object filter into struct rev_info
751 + + list-objects-filter-options: create copy helper
752 + + index-pack: document and test the --promisor option
753 + (this branch is used by ds/bundle-uri.)
754
755 Bundle file format gets extended to allow a partial bundle,
756 filtered by similar criteria you would give when making a
757 partial/lazy clone.
758
655 - Will merge to 'next'?
656 - source: <pull.1159.v2.git.1646689840.gitgitgadget@gmail.com>
657 -
658 -
659 -* fs/gpgsm-update (2022-03-04) 3 commits
660 - (merged to 'next' on 2022-03-04 at 9c72508077)
661 - + t/lib-gpg: kill all gpg components, not just gpg-agent
662 - + t/lib-gpg: reload gpg components after updating trustlist
663 - + gpg-interface/gpgsm: fix for v2.3
664 -
665 - Newer version of GPGSM changed its output in a backward
666 - incompatible way to break our code that parses its output. It also
667 - added more processes our tests need to kill when cleaning up.
668 - Adjustments have been made to accommodate these changes.
669 -
759 Will merge to 'master'.
671 - source: <20220302090250.590450-1-fs@gigacodes.de>
760 + source: <pull.1159.v4.git.1646841703.gitgitgadget@gmail.com>
761
762
763 * jd/prompt-upstream-mark (2022-03-03) 4 commits
@@ -680,7 +769,7 @@ Release tarballs are available at:
769 Tweaks in the command line prompt (in contrib/) code around its
770 GIT_PS1_SHOWUPSTREAM feature.
771
683 - Will merge to 'next'?
772 + What's the status of this one?
773 source: <pull.1162.v2.git.1645991832.gitgitgadget@gmail.com>
774
775
@@ -709,20 +798,22 @@ Release tarballs are available at:
798 the other side what we already have, which is useful when you
799 cannot trust what you have in the local object store.
800
712 - Will merge to 'next'?
801 + Waiting for discussion to settle.
802 + cf. <20220309002729.3581315-1-calvinwan@google.com>
803 source: <pull.1138.v3.git.1646406274.gitgitgadget@gmail.com>
804
805
806 * tk/empty-untracked-cache (2022-02-28) 3 commits
717 - - untracked-cache: write index when populating empty untracked cache
718 - - t7519: populate untracked cache before test
719 - - t7519: avoid file to index mtime race for untracked cache
807 + (merged to 'next' on 2022-03-08 at d3749d5850)
808 + + untracked-cache: write index when populating empty untracked cache
809 + + t7519: populate untracked cache before test
810 + + t7519: avoid file to index mtime race for untracked cache
811
812 The untracked cache newly computed weren't written back to the
813 on-disk index file when there is no other change to the index,
814 which has been corrected.
815
725 - Will merge to 'next'.
816 + Will merge to 'master'.
817 source: <pull.986.v3.git.1645999021.gitgitgadget@gmail.com>
818
819
@@ -751,19 +842,20 @@ Release tarballs are available at:
842
843
844 * vd/sparse-read-tree (2022-03-01) 8 commits
754 - - read-tree: make three-way merge sparse-aware
755 - - read-tree: make two-way merge sparse-aware
756 - - read-tree: narrow scope of index expansion for '--prefix'
757 - - read-tree: integrate with sparse index
758 - - read-tree: expand sparse checkout test coverage
759 - - read-tree: explicitly disallow prefixes with a leading '/'
760 - - status: fix nested sparse directory diff in sparse index
761 - - sparse-index: prevent repo root from becoming sparse
845 + (merged to 'next' on 2022-03-08 at 037c187db2)
846 + + read-tree: make three-way merge sparse-aware
847 + + read-tree: make two-way merge sparse-aware
848 + + read-tree: narrow scope of index expansion for '--prefix'
849 + + read-tree: integrate with sparse index
850 + + read-tree: expand sparse checkout test coverage
851 + + read-tree: explicitly disallow prefixes with a leading '/'
852 + + status: fix nested sparse directory diff in sparse index
853 + + sparse-index: prevent repo root from becoming sparse
854
855 "git read-tree" has been made to be aware of the sparse-index
856 feature.
857
766 - Will merge to 'next'.
858 + Will merge to 'master'.
859 source: <pull.1157.v3.git.1646166271.gitgitgadget@gmail.com>
860
861
@@ -779,102 +871,56 @@ Release tarballs are available at:
871
872
873 * pw/single-key-interactive (2022-02-23) 4 commits
782 - - add -p: disable stdin buffering when interactive.singlekey is set
783 - - terminal: set VMIN and VTIME in non-canonical mode
784 - - terminal: pop signal handler when terminal is restored
785 - - terminal: always reset terminal when reading without echo
874 + (merged to 'next' on 2022-03-13 at 02fd6aca2f)
875 + + add -p: disable stdin buffering when interactive.singlekey is set
876 + + terminal: set VMIN and VTIME in non-canonical mode
877 + + terminal: pop signal handler when terminal is restored
878 + + terminal: always reset terminal when reading without echo
879 + (this branch is used by pw/add-p-single-key.)
880
881 The single-key interactive operation used by "git add -p" has been
882 made more robust.
883
790 - Will merge to 'next'?
884 + Will merge to 'master'.
885 source: <pull.1146.v2.git.1645556015.gitgitgadget@gmail.com>
886
887
794 -* jh/builtin-fsmonitor-part3 (2022-03-01) 23 commits
795 - - t/perf/p7527: add perf test for builtin FSMonitor
796 - - t7527: FSMonitor tests for directory moves
797 - - fsmonitor: optimize processing of directory events
798 - - fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed
799 - - fsm-health-win32: force shutdown daemon if worktree root moves
800 - - fsm-health-win32: add framework to monitor daemon health
801 - - fsmonitor--daemon: stub in health thread
802 - - fsmonitor--daemon: rename listener thread related variables
803 - - fsmonitor--daemon: prepare for adding health thread
804 - - fsmonitor--daemon: cd out of worktree root
805 - - fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS
806 - - unpack-trees: initialize fsmonitor_has_run_once in o->result
807 - - fsmonitor-settings: remote repos on Windows are incompatible with FSMonitor
808 - - fsmonitor-settings: remote repos on macOS are incompatible with FSMonitor
809 - - fsmonitor-settings: stub in macOS-specific incompatibility checking
810 - - fsmonitor-settings: virtual repos are incompatible with FSMonitor
811 - - fsmonitor-settings: stub in platform-specific incompatibility checking
812 - - fsmonitor-settings: bare repos are incompatible with FSMonitor
813 - - t/helper/fsmonitor-client: create stress test
814 - - t7527: test builtin FSMonitor watching repos with unicode paths
815 - - t7527: test FS event reporing on macOS WRT case and Unicode
816 - - fsm-listen-win32: handle shortnames
817 - - Merge branch 'jh/builtin-fsmonitor-part2' into jh/builtin-fsmonitor-part3
888 +* jh/builtin-fsmonitor-part3 (2022-03-09) 28 commits
889 + . fsmonitor-settings: NTFS and FAT32 on MacOS are incompatible
890 + . t7527: test Unicode NFC/NFD handling on MacOS
891 + . t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd
892 + . fsmonitor: on macOS also emit NFC spelling for NFD pathname
893 + . t7527: test FSMonitor on case insensitive+preserving file system
894 + . fsmonitor: never set CE_FSMONITOR_VALID on submodules
895 + . t/perf/p7527: add perf test for builtin FSMonitor
896 + . t7527: FSMonitor tests for directory moves
897 + . fsmonitor: optimize processing of directory events
898 + . fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed
899 + . fsm-health-win32: force shutdown daemon if worktree root moves
900 + . fsm-health-win32: add polling framework to monitor daemon health
901 + . fsmonitor--daemon: stub in health thread
902 + . fsmonitor--daemon: rename listener thread related variables
903 + . fsmonitor--daemon: prepare for adding health thread
904 + . fsmonitor--daemon: cd out of worktree root
905 + . fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS
906 + . unpack-trees: initialize fsmonitor_has_run_once in o->result
907 + . fsmonitor-settings: remote repos on Windows are incompatible
908 + . fsmonitor-settings: remote repos on macOS are incompatible
909 + . fsmonitor-settings: stub in macOS-specific incompatibility checking
910 + . fsmonitor-settings: VFS for Git virtual repos are incompatible
911 + . fsmonitor-settings: stub in platform-specific incompatibility checking
912 + . fsmonitor-settings: bare repos are incompatible with FSMonitor
913 + . t/helper/fsmonitor-client: create stress test
914 + . t7527: test FSMonitor on repos with Unicode root paths
915 + . fsm-listen-win32: handle shortnames
916 + . Merge branch 'jh/builtin-fsmonitor-part2' into jh/builtin-fsmonitor-part3
917 (this branch uses jh/builtin-fsmonitor-part2.)
918
919 More fsmonitor--daemon.
821 -
822 - Expecting a reroll on the updated "part 2".
823 - source: <pull.1143.git.1644940773.gitgitgadget@gmail.com>
824 -
825 -
826 -* hn/reftable-no-empty-keys (2022-02-23) 7 commits
827 - (merged to 'next' on 2022-03-01 at dc4aa7e796)
828 - + reftable: rename writer_stats to reftable_writer_stats
829 - + reftable: add test for length of disambiguating prefix
830 - + reftable: ensure that obj_id_len is >= 2 on writing
831 - + reftable: avoid writing empty keys at the block layer
832 - + reftable: add a test that verifies that writing empty keys fails
833 - + reftable: reject 0 object_id_len
834 - + Documentation: object_id_len goes up to 31
835 -
836 - General clean-up in reftable implementation, including
837 - clarification of the API documentation, tightening the code to
838 - honor documented length limit, etc.
839 -
840 - Will merge to 'master'.
841 - source: <pull.1185.v3.git.git.1645469170.gitgitgadget@gmail.com>
842 -
843 -
844 -* ps/fetch-atomic (2022-02-17) 7 commits
845 - (merged to 'next' on 2022-02-18 at 3824153b23)
846 - + fetch: make `--atomic` flag cover pruning of refs
847 - + fetch: make `--atomic` flag cover backfilling of tags
848 - + refs: add interface to iterate over queued transactional updates
849 - + fetch: report errors when backfilling tags fails
850 - + fetch: control lifecycle of FETCH_HEAD in a single place
851 - + fetch: backfill tags before setting upstream
852 - + fetch: increase test coverage of fetches
853 - (this branch is used by ps/fetch-atomic-fixup and ps/fetch-mirror-optim.)
854 -
855 - "git fetch" can make two separate fetches, but ref updates coming
856 - from them were in two separate ref transactions under "--atomic",
857 - which has been corrected.
858 -
859 - Will merge to 'master' together with ps/fetch-atomic-fixup.
860 - source: <cover.1645102965.git.ps@pks.im>
861 -
862 -
863 -* pw/xdiff-alloc-fail (2022-02-16) 4 commits
864 - (merged to 'next' on 2022-03-01 at 8a10912059)
865 - + xdiff: handle allocation failure when merging
866 - + xdiff: refactor a function
867 - + xdiff: handle allocation failure in patience diff
868 - + xdiff: fix a memory leak
869 -
870 - Improve failure case behaviour of xdiff library when memory
871 - allocation fails.
872 -
873 - Will merge to 'master'.
874 - source: <pull.1140.v2.git.1645006510.gitgitgadget@gmail.com>
920 + source: <pull.1143.v2.git.1646777727.gitgitgadget@gmail.com>
921
922
877 -* gc/recursive-fetch-with-unused-submodules (2022-03-03) 10 commits
923 +* gc/recursive-fetch-with-unused-submodules (2022-03-07) 10 commits
924 - submodule: fix latent check_has_commit() bug
925 - fetch: fetch unpopulated, changed submodules
926 - submodule: move logic into fetch_task_create()
@@ -892,8 +938,9 @@ Release tarballs are available at:
938 in the current checkout of the superproject. We now do so for all
939 submodules that have been run "git submodule init" on.
940
895 - Will merge to 'next'?
896 - source: <20220304005757.70107-1-chooglen@google.com>
941 + Expecting a reroll.
942 + cf. <kl6ly21p2q00.fsf@chooglen-macbookpro.roam.corp.google.com>
943 + source: <20220308001433.94995-1-chooglen@google.com>
944
945
946 * js/bisect-in-c (2022-02-23) 14 commits
@@ -934,22 +981,7 @@ Release tarballs are available at:
981 source: <pull.1128.v2.git.1644187146.gitgitgadget@gmail.com>
982
983
937 -* jc/cat-file-batch-commands (2022-02-18) 4 commits
938 - (merged to 'next' on 2022-03-01 at 8764b7963c)
939 - + cat-file: add --batch-command mode
940 - + cat-file: add remove_timestamp helper
941 - + cat-file: introduce batch_mode enum to replace print_contents
942 - + cat-file: rename cmdmode to transform_mode
943 -
944 - "git cat-file" learns "--batch-command" mode, which is a more
945 - flexible interface than the existing "--batch" or "--batch-check"
946 - modes, to allow different kinds of inquiries made.
947 -
948 - Will merge to 'master'.
949 - source: <pull.1212.v10.git.git.1645208594.gitgitgadget@gmail.com>
950 -
951 -
952 -* ar/submodule-update (2022-03-04) 13 commits
984 +* gc/submodule-update-part1 (2022-03-04) 13 commits
985 - submodule--helper update-clone: check for --filter and --init
986 - submodule update: add tests for --filter
987 - submodule--helper: remove ensure-core-worktree
@@ -966,7 +998,7 @@ Release tarballs are available at:
998
999 Rewrite of "git submodule update" in C (early part).
1000
969 - Will merge to 'next'?
1001 + Will merge to 'next'.
1002 source: <20220305001401.20888-1-chooglen@google.com>
1003
1004
@@ -984,22 +1016,23 @@ Release tarballs are available at:
1016
1017
1018 * ab/object-file-api-updates (2022-02-25) 12 commits
987 - - object-file API: pass an enum to read_object_with_reference()
988 - - object-file.c: add a literal version of write_object_file_prepare()
989 - - object-file API: have hash_object_file() take "enum object_type"
990 - - object API: rename hash_object_file_literally() to write_*()
991 - - object-file API: split up and simplify check_object_signature()
992 - - object API users + docs: check <0, not !0 with check_object_signature()
993 - - object API docs: move check_object_signature() docs to cache.h
994 - - object API: correct "buf" v.s. "map" mismatch in *.c and *.h
995 - - object-file API: have write_object_file() take "enum object_type"
996 - - object-file API: add a format_object_header() function
997 - - object-file API: return "void", not "int" from hash_object_file()
998 - - object-file.c: split up declaration of unrelated variables
1019 + (merged to 'next' on 2022-03-08 at 7fc151ce67)
1020 + + object-file API: pass an enum to read_object_with_reference()
1021 + + object-file.c: add a literal version of write_object_file_prepare()
1022 + + object-file API: have hash_object_file() take "enum object_type"
1023 + + object API: rename hash_object_file_literally() to write_*()
1024 + + object-file API: split up and simplify check_object_signature()
1025 + + object API users + docs: check <0, not !0 with check_object_signature()
1026 + + object API docs: move check_object_signature() docs to cache.h
1027 + + object API: correct "buf" v.s. "map" mismatch in *.c and *.h
1028 + + object-file API: have write_object_file() take "enum object_type"
1029 + + object-file API: add a format_object_header() function
1030 + + object-file API: return "void", not "int" from hash_object_file()
1031 + + object-file.c: split up declaration of unrelated variables
1032
1033 Object-file API shuffling.
1034
1002 - Will merge to 'next'.
1035 + Will merge to 'master'.
1036 source: <cover-v3-00.12-00000000000-20220204T234435Z-avarab@gmail.com>
1037
1038
@@ -1056,26 +1089,6 @@ Release tarballs are available at:
1089 source: <20220210164627.279520-1-jholdsworth@nvidia.com>
1090
1091
1059 -* en/present-despite-skipped (2022-03-01) 7 commits
1060 - (merged to 'next' on 2022-03-01 at 4982287a31)
1061 - + repo_read_index: add config to expect files outside sparse patterns
1062 - (merged to 'next' on 2022-02-15 at 960873fdad)
1063 - + Accelerate clear_skip_worktree_from_present_files() by caching
1064 - + Update documentation related to sparsity and the skip-worktree bit
1065 - + repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
1066 - + unpack-trees: fix accidental loss of user changes
1067 - + t1011: add testcase demonstrating accidental loss of user modifications
1068 - + Merge branch 'vd/sparse-clean-etc' into en/present-despite-skipped
1069 -
1070 - In sparse-checkouts, files mis-marked as missing from the working tree
1071 - could lead to later problems. Such files were hard to discover, and
1072 - harder to correct. Automatically detecting and correcting the marking
1073 - of such files has been added to avoid these problems.
1074 -
1075 - Will merge to 'master'.
1076 - source: <pull.1114.v2.git.1642175983.gitgitgadget@gmail.com>
1077 -
1078 -
1092 * js/use-builtin-add-i (2021-12-01) 2 commits
1093 - add -i: default to the built-in implementation
1094 - t2016: require the PERL prereq only when necessary
@@ -1094,55 +1107,56 @@ Release tarballs are available at:
1107
1108
1109 * jh/builtin-fsmonitor-part2 (2022-03-01) 30 commits
1097 - - update-index: convert fsmonitor warnings to advise
1098 - - t7527: test status with untracked-cache and fsmonitor--daemon
1099 - - fsmonitor: force update index after large responses
1100 - - fsmonitor--daemon: use a cookie file to sync with file system
1101 - - fsmonitor--daemon: periodically truncate list of modified files
1102 - - t/perf/p7519: add fsmonitor--daemon test cases
1103 - - t/perf/p7519: speed up test on Windows
1104 - - t/helper/test-chmtime: skip directories on Windows
1105 - - t/perf: avoid copying builtin fsmonitor files into test repo
1106 - - t7527: create test for fsmonitor--daemon
1107 - - t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
1108 - - help: include fsmonitor--daemon feature flag in version info
1109 - - fsmonitor--daemon: implement handle_client callback
1110 - - compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
1111 - - compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent
1112 - - compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
1113 - - fsmonitor--daemon: create token-based changed path cache
1114 - - fsmonitor--daemon: define token-ids
1115 - - fsmonitor--daemon: add pathname classification
1116 - - fsmonitor--daemon: implement 'start' command
1117 - - fsmonitor--daemon: implement 'run' command
1118 - - compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
1119 - - compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
1120 - - fsmonitor--daemon: implement 'stop' and 'status' commands
1121 - - fsmonitor--daemon: add a built-in fsmonitor daemon
1122 - - fsmonitor: document builtin fsmonitor
1123 - - fsmonitor: use IPC to query the builtin FSMonitor daemon
1124 - - fsmonitor: config settings are repository-specific
1125 - - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
1126 - - fsmonitor: enhance existing comments, clarify trivial response handling
1127 - (this branch is used by jh/builtin-fsmonitor-part3.)
1110 + (merged to 'next' on 2022-03-08 at 5f9d385483)
1111 + + update-index: convert fsmonitor warnings to advise
1112 + + t7527: test status with untracked-cache and fsmonitor--daemon
1113 + + fsmonitor: force update index after large responses
1114 + + fsmonitor--daemon: use a cookie file to sync with file system
1115 + + fsmonitor--daemon: periodically truncate list of modified files
1116 + + t/perf/p7519: add fsmonitor--daemon test cases
1117 + + t/perf/p7519: speed up test on Windows
1118 + + t/helper/test-chmtime: skip directories on Windows
1119 + + t/perf: avoid copying builtin fsmonitor files into test repo
1120 + + t7527: create test for fsmonitor--daemon
1121 + + t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
1122 + + help: include fsmonitor--daemon feature flag in version info
1123 + + fsmonitor--daemon: implement handle_client callback
1124 + + compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
1125 + + compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent
1126 + + compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
1127 + + fsmonitor--daemon: create token-based changed path cache
1128 + + fsmonitor--daemon: define token-ids
1129 + + fsmonitor--daemon: add pathname classification
1130 + + fsmonitor--daemon: implement 'start' command
1131 + + fsmonitor--daemon: implement 'run' command
1132 + + compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
1133 + + compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
1134 + + fsmonitor--daemon: implement 'stop' and 'status' commands
1135 + + fsmonitor--daemon: add a built-in fsmonitor daemon
1136 + + fsmonitor: document builtin fsmonitor
1137 + + fsmonitor: use IPC to query the builtin FSMonitor daemon
1138 + + fsmonitor: config settings are repository-specific
1139 + + fsmonitor-ipc: create client routines for git-fsmonitor--daemon
1140 + + fsmonitor: enhance existing comments, clarify trivial response handling
1141 + (this branch is used by jh/builtin-fsmonitor-part-2plus and jh/builtin-fsmonitor-part3.)
1142
1143 Built-in fsmonitor (part 2).
1144
1131 - Will merge to 'next'.
1145 + Will merge to 'master'.
1146 source: <pull.1041.v6.git.1646160212.gitgitgadget@gmail.com>
1147
1148
1135 -* es/superproject-aware-submodules (2022-02-28) 3 commits
1136 - - rev-parse: short-circuit superproject worktree when config unset
1137 - - introduce submodule.hasSuperproject record
1138 - - t7400-submodule-basic: modernize inspect() helper
1149 +* es/superproject-aware-submodules (2022-03-09) 3 commits
1150 + . rev-parse: short-circuit superproject worktree when config unset
1151 + . introduce submodule.hasSuperproject record
1152 + . t7400-submodule-basic: modernize inspect() helper
1153
1154 A configuration variable in a repository tells if it is (or is not)
1155 a submodule of a superproject.
1156
1157 Expecting a reroll.
1144 - cf. <xmqqbkyqupg6.fsf@gitster.g>
1145 - source: <20220301002613.1459916-1-emilyshaffer@google.com>
1158 + cf. <kl6l4k45s7cb.fsf@chooglen-macbookpro.roam.corp.google.com>
1159 + source: <20220310004423.2627181-1-emilyshaffer@google.com>
1160
1161 --------------------------------------------------
1162 [Discarded]