What's cooking (2022/01 #03)

Junio C Hamano committed Jan 13, 2022 at 16:26 UTC 05a45cda0a50da1386bd75850c42e431fd4b342a
1 file changed +596 -572
whats-cooking.txt
+596 -572
@@ -1,21 +1,29 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2022, #02; Wed, 5)
4 -X-master-at: e83ba647f7c61cf945690d6a0bd8c172a6498dc8
5 -X-next-at: 24525b3c66f3a5878e67d92b3e0fd082dc1d905e
3 +Subject: What's cooking in git.git (Jan 2022, #03; Thu, 13)
4 +X-master-at: 1ffcbaa1a5f10c9f706314d77f88de20a4a498c2
5 +X-next-at: 00780c9af44409a68481c82f63a97bd18bb2593e
6
7 -What's cooking in git.git (Jan 2022, #02; Wed, 5)
7 +What's cooking in git.git (Jan 2022, #03; Thu, 13)
8 --------------------------------------------------
9
10 -It's a bit early to publish another issue of this report, but a
11 -bunch of topics have graduated to 'master' and a handful of topics
12 -have joined 'next', so here is the second installment of the month.
10 +There are a few "oops, what we merged recently is broken" topics
11 +that still are not in 'master', but otherwise what we have should
12 +be pretty much what we'll have in the final one.
13
14 -About 25 topics are cooking in 'next', all of which hopefully can be
15 -in the upcoming release. Those not yet in may need bumping, but it
16 -was expected to be a slow cycle due to end-of-year holidays, so it
17 -is also OK to give them enough time to get polished into good enough
18 -shape, rather than merging them prematurely.
14 + - I am reasonably happy with ab/refs-errno-cleanup (just one patch)
15 + that fixes the incorrect state of the code left by the earlier
16 + parts of the topic that have already been merged during this
17 + cycle.
18 +
19 + - I am also OK with ab/reftable-build-fixes (two patches), one for
20 + general type correctness fix, the other for helping older sub-C99
21 + compilers.
22 +
23 +If there are fixes for regressions that we introduced during this
24 +cycle other than these two topics, I certainly am missing them, so
25 +please holler loudly and quickly, hopefully in time for me to tag
26 +the -rc1 tomorrow.
27
28 Here are the topics that have been cooking in my tree. Commits
29 prefixed with '+' are in 'next' (being in 'next' is a sign that a
@@ -59,434 +67,504 @@ Release tarballs are available at:
67 --------------------------------------------------
68 [Graduated to 'master']
69
62 -* ds/repack-fixlets (2021-12-20) 2 commits
63 - (merged to 'next' on 2021-12-27 at 8f8474ae84)
64 - + repack: make '--quiet' disable progress
65 - + repack: respect kept objects with '--write-midx -b'
70 +* ab/do-not-limit-stash-help-to-push (2021-12-16) 1 commit
71 + (merged to 'next' on 2022-01-03 at adfc0c1f17)
72 + + stash: don't show "git stash push" usage on bad "git stash" usage
73
67 - Two fixes around "git repack".
68 - source: <pull.1098.v2.git.1640011691.gitgitgadget@gmail.com>
74 + "git stash" by default triggers its "push" action, but its
75 + implementation also made "git stash -h" to show short help only for
76 + "git stash push", which has been corrected.
77 + source: <patch-v3-1.1-6b33b104c84-20211216T125317Z-avarab@gmail.com>
78
79
71 -* en/keep-cwd (2021-12-09) 11 commits
72 - (merged to 'next' on 2021-12-27 at 7cd8f7fdc0)
73 - + t2501: simplify the tests since we can now assume desired behavior
74 - + dir: new flag to remove_dir_recurse() to spare the original_cwd
75 - + dir: avoid incidentally removing the original_cwd in remove_path()
76 - + stash: do not attempt to remove startup_info->original_cwd
77 - + rebase: do not attempt to remove startup_info->original_cwd
78 - + clean: do not attempt to remove startup_info->original_cwd
79 - + symlinks: do not include startup_info->original_cwd in dir removal
80 - + unpack-trees: add special cwd handling
81 - + unpack-trees: refuse to remove startup_info->original_cwd
82 - + setup: introduce startup_info->original_cwd
83 - + t2501: add various tests for removing the current working directory
84 -
85 - Many git commands that deal with working tree files try to remove a
86 - directory that becomes empty (i.e. "git switch" from a branch that
87 - has the directory to another branch that does not would attempt
88 - remove all files in the directory and the directory itself). This
89 - drops users into an unfamiliar situation if the command was run in
90 - a subdirectory that becomes subject to removal due to the command.
91 - The commands have been taught to keep an empty directory if it is
92 - the directory they were started in to avoid surprising users.
93 - source: <pull.1140.v6.git.git.1639026515.gitgitgadget@gmail.com>
80 +* ab/makefile-hook-list-dependency-fix (2021-12-25) 1 commit
81 + (merged to 'next' on 2022-01-03 at 8c8ca0cbce)
82 + + Makefile: correct the dependency graph of hook-list.h
83
84 + Fix dependency rules to generate hook-list.h header file.
85 + source: <patch-1.1-1fafa6c643b-20211217T001137Z-avarab@gmail.com>
86
96 -* gh/gpg-doc-markup-fix (2021-12-17) 1 commit
97 - (merged to 'next' on 2021-12-27 at 7988d71a27)
98 - + docs: add missing colon to Documentation/config/gpg.txt
87
100 - Doc markup fix.
101 - source: <20211217161718.15767-1-greg@hurrell.net>
88 +* ab/makefile-msgfmt-wo-stats (2021-12-25) 1 commit
89 + (merged to 'next' on 2022-01-03 at 2e2097c310)
90 + + Makefile: don't invoke msgfmt with --statistics
91
92 + Make the recipe that runs msgfmt less noisy.
93 + source: <patch-1.1-58408f384e7-20211217T000729Z-avarab@gmail.com>
94
104 -* jc/flex-array-definition (2021-12-08) 1 commit
105 - (merged to 'next' on 2021-12-27 at 9db6a814b7)
106 - + flex-array: simplify compiler-specific workaround
95
108 - The conditions to choose different definitions of the FLEX_ARRAY
109 - macro for vendor compilers has been simplified to make it easier to
110 - maintain.
111 - source: <xmqqee6mv9no.fsf@gitster.g>
96 +* ab/makefile-pager-env-is-used-only-by-pager.c (2021-12-25) 1 commit
97 + (merged to 'next' on 2022-01-03 at 7ab1e1c5c4)
98 + + Makefile: move -DPAGER_ENV from BASIC_CFLAGS to EXTRA_CPPFLAGS
99
100 + source: <patch-1.1-90d1e77ad5e-20211217T001628Z-avarab@gmail.com>
101
114 -* jc/merge-detached-head-name (2021-12-20) 1 commit
115 - (merged to 'next' on 2021-12-27 at 01f9fe17b9)
116 - + merge: allow to pretend a merge is made into a different branch
102
118 - The default merge message prepared by "git merge" records the name
119 - of the current branch; the name can be overridden with a new option
120 - to allow users to pretend a merge is made on a different branch.
121 - source: <xmqqee66ubuw.fsf_-_@gitster.g>
103 +* ab/reflog-prep (2021-12-22) 9 commits
104 + (merged to 'next' on 2022-01-03 at 07d2d78d86)
105 + + reflog + refs-backend: move "verbose" out of the backend
106 + + refs files-backend: assume cb->newlog if !EXPIRE_REFLOGS_DRY_RUN
107 + + reflog: reduce scope of "struct rev_info"
108 + + reflog expire: don't use lookup_commit_reference_gently()
109 + + reflog expire: refactor & use "tip_commit" only for UE_NORMAL
110 + + reflog expire: use "switch" over enum values
111 + + reflog: change one->many worktree->refnames to use a string_list
112 + + reflog expire: narrow scope of "cb" in cmd_reflog_expire()
113 + + reflog delete: narrow scope of "cmd" passed to count_reflog_ent()
114 + (this branch is used by jc/reflog-parse-options.)
115
116 + Code refactoring in the reflog part of refs API.
117 + source: <cover-v3-0.9-00000000000-20211222T040557Z-avarab@gmail.com>
118
124 -* jc/t4204-do-not-write-git-on-upstream-of-pipe (2021-12-16) 1 commit
125 - (merged to 'next' on 2021-12-27 at dc2c5db807)
126 - + t4204 is not sanitizer clean at all
119
128 - Test fixes.
129 - source: <xmqqtuf86t7z.fsf_-_@gitster.g>
120 +* ab/usage-die-message (2021-12-07) 6 commits
121 + (merged to 'next' on 2022-01-03 at 0ef3860099)
122 + + config API: use get_error_routine(), not vreportf()
123 + + usage.c + gc: add and use a die_message_errno()
124 + + gc: return from cmd_gc(), don't call exit()
125 + + usage.c API users: use die_message() for error() + exit 128
126 + + usage.c API users: use die_message() for "fatal :" + exit 128
127 + + usage.c: add a die_message() routine
128
129 + Code clean-up to hide vreportf() from public API.
130 + source: <cover-v2-0.6-00000000000-20211207T182419Z-avarab@gmail.com>
131
132 -* jh/p4-rcs-expansion-in-bytestring (2021-12-16) 5 commits
133 - (merged to 'next' on 2021-12-27 at 650cb248ea)
134 - + git-p4: resolve RCS keywords in bytes not utf-8
135 - + git-p4: open temporary patch file for write only
136 - + git-p4: add raw option to read_pipelines
137 - + git-p4: pre-compile RCS keyword regexes
138 - + git-p4: use with statements to close files after use in patchRCSKeywords
132
140 - The RCS keyword substitution in "git p4" used to be done assuming
141 - that the contents are UTF-8 text, which can trigger decoding
142 - errors. We now treat the contents as a bytestring for robustness
143 - and correctness.
144 - source: <20211216134619.2048348-1-jholdsworth@nvidia.com>
133 +* ak/protect-any-current-branch (2022-01-12) 1 commit
134 + (merged to 'next' on 2022-01-12 at 5ad87959d2)
135 + + branch: missing space fix at line 313
136
137 + source: <20220111123627.58625-1-bagasdotme@gmail.com>
138
147 -* jk/ssh-signing-doc-markup-fix (2021-12-15) 1 commit
148 - (merged to 'next' on 2021-12-27 at 2188dc2023)
149 - + doc/config: mark ssh allowedSigners example as literal
139
151 - Docfix.
152 - source: <YboWlOG3vZD/7Osx@coredump.intra.peff.net>
140 +* ds/fetch-pull-with-sparse-index (2021-12-22) 5 commits
141 + (merged to 'next' on 2022-01-03 at f58da4a878)
142 + + test-read-cache: remove --table, --expand options
143 + + t1091/t3705: remove 'test-tool read-cache --table'
144 + + t1092: replace 'read-cache --table' with 'ls-files --sparse'
145 + + ls-files: add --sparse option
146 + + fetch/pull: use the sparse index
147
148 + "git fetch" and "git pull" are now declared sparse-index clean.
149 + Also "git ls-files" learns the "--sparse" option to help debugging.
150 + source: <pull.1080.v4.git.1640182856.gitgitgadget@gmail.com>
151
155 -* jv/use-larger-buffer-in-upload-pack (2021-12-15) 1 commit
156 - (merged to 'next' on 2021-12-27 at 3a1afc1ef8)
157 - + upload-pack.c: increase output buffer size
152
159 - "git upload-pack" (the other side of "git fetch") used a 8kB buffer
160 - but most of its payload came on 64kB "packets". The buffer size
161 - has been enlarged so that such a packet fits.
162 - source: <20211214194626.33814-1-jacob@gitlab.com>
153 +* ds/sparse-checkout-malformed-pattern-fix (2021-12-30) 3 commits
154 + (merged to 'next' on 2021-12-30 at c8b2ade48c)
155 + + sparse-checkout: refuse to add to bad patterns
156 + + sparse-checkout: fix OOM error with mixed patterns
157 + + sparse-checkout: fix segfault on malformed patterns
158
159 + Certain sparse-checkout patterns that are valid in non-cone mode
160 + led to segfault in cone mode, which has been corrected.
161 + source: <pull.1069.v4.git.1639671222.gitgitgadget@gmail.com>
162
165 -* km/help-prompt-fix (2021-12-16) 1 commit
166 - (merged to 'next' on 2021-12-27 at a16d8fa62a)
167 - + help: make auto-correction prompt more consistent
163
169 - Among some code paths that ask an yes/no question, only one place
170 - gave a prompt that looked different from the others, which has been
171 - updated to match what the others create.
172 - source: <xmqqy24k8c0j.fsf@gitster.g>
164 +* en/merge-ort-renorm-with-rename-delete-conflict-fix (2021-12-30) 1 commit
165 + (merged to 'next' on 2022-01-05 at bb81dd432d)
166 + + merge-ort: fix bug with renormalization and rename/delete conflicts
167
168 + A corner case bug in the ort merge strategy has been corrected.
169 + source: <pull.1174.git.git.1640650846612.gitgitgadget@gmail.com>
170
175 -* pw/diff-color-moved-fix (2021-12-09) 15 commits
176 - (merged to 'next' on 2021-12-27 at 443dd9f97f)
177 - + diff --color-moved: intern strings
178 - + diff: use designated initializers for emitted_diff_symbol
179 - + diff --color-moved-ws=allow-indentation-change: improve hash lookups
180 - + diff --color-moved: stop clearing potential moved blocks
181 - + diff --color-moved: shrink potential moved blocks as we go
182 - + diff --color-moved: unify moved block growth functions
183 - + diff --color-moved: call comparison function directly
184 - + diff --color-moved-ws=allow-indentation-change: simplify and optimize
185 - + diff: simplify allow-indentation-change delta calculation
186 - + diff --color-moved: avoid false short line matches and bad zebra coloring
187 - + diff --color-moved=zebra: fix alternate coloring
188 - + diff --color-moved: rewind when discarding pmb
189 - + diff --color-moved: factor out function
190 - + diff --color-moved: clear all flags on blocks that are too short
191 - + diff --color-moved: add perf tests
171
193 - Correctness and performance update to "diff --color-moved" feature.
194 - source: <pull.981.v5.git.1639045809.gitgitgadget@gmail.com>
172 +* en/stash-df-fix (2022-01-04) 1 commit
173 + (merged to 'next' on 2022-01-06 at 22d0c6ccf7)
174 + + stash: do not return before restoring untracked files
175
176 + "git stash apply" forgot to attempt restoring untracked files when
177 + it failed to restore changes to tracked ones.
178 + source: <pull.1180.git.git.1641337498996.gitgitgadget@gmail.com>
179
197 -* rs/daemon-plug-leak (2021-12-20) 1 commit
198 - (merged to 'next' on 2021-12-27 at 55b058a8bb)
199 - + daemon: plug memory leak on overlong path
180
201 - Plug a memory leak.
202 - source: <5b151dc3-d4c7-29d3-71ed-a79033693d5d@web.de>
181 +* fs/gpg-unknown-key-test-fix (2022-01-12) 1 commit
182 + (merged to 'next' on 2022-01-12 at 80d3416168)
183 + + t/gpg: simplify test for unknown key
184
185 + Test simplification.
186 + source: <20220112120757.874714-1-fs@gigacodes.de>
187
205 -* rs/log-invert-grep-with-headers (2021-12-17) 1 commit
206 - (merged to 'next' on 2021-12-27 at 861648fe8c)
207 - + log: let --invert-grep only invert --grep
188
209 - "git log --invert-grep --author=<name>" used to exclude commits
210 - written by the given author, but now "--invert-grep" only affects
211 - the matches made by the "--grep=<pattern>" option.
212 - source: <xmqqee6cbalb.fsf@gitster.g>
189 +* fs/ssh-signing-key-lifetime (2022-01-10) 1 commit
190 + (merged to 'next' on 2022-01-12 at 8541f3399c)
191 + + fmt-merge-msg: prevent use-after-free with signed tags
192
193 + "git merge $signed_tag" started to drop the tag message from the
194 + default merge message it uses by accident, which has been corrected.
195 + source: <6e08b73d602853b3de71257117e85e32b96b5c19.1641849502.git.me@ttaylorr.com>
196
215 -* rs/pcre2-utf (2021-12-20) 2 commits
216 - (merged to 'next' on 2021-12-27 at 5dc740c331)
217 - + grep/pcre2: factor out literal variable
218 - + grep/pcre2: use PCRE2_UTF even with ASCII patterns
197
220 - "git grep --perl-regexp" failed to match UTF-8 characters with
221 - wildcard when the pattern consists only of ASCII letters, which has
222 - been corrected.
223 - source: <5fa6962e-3c1c-6dbc-f6d7-589151a9baec@web.de>
198 +* hn/ref-api-tests-update (2021-12-22) 4 commits
199 + (merged to 'next' on 2022-01-03 at 6815d4d8c1)
200 + + t7004: use "test-tool ref-store" for reflog inspection
201 + + t7004: create separate tags for different tests
202 + + t5550: require REFFILES
203 + + t5540: require REFFILES
204
205 + Test updates.
206 + source: <pull.1168.git.git.1640170784.gitgitgadget@gmail.com>
207
226 -* rs/t4202-invert-grep-test-fix (2021-12-17) 1 commit
227 - (merged to 'next' on 2021-12-27 at b09cee1626)
228 - + t4202: fix patternType setting in --invert-grep test
208
230 - Test fix.
231 - source: <79dcebc0-e569-cc8a-4702-c572b062ed6d@web.de>
209 +* hn/refs-debug-update (2021-12-22) 3 commits
210 + (merged to 'next' on 2022-01-03 at 1cd451c66c)
211 + + refs: centralize initialization of the base ref_store.
212 + + refs: print error message in debug output
213 + + refs: pass gitdir to packed_ref_store_create
214
215 + Debugging support for refs API.
216 + source: <pull.1163.v2.git.git.1640196714.gitgitgadget@gmail.com>
217
234 -* xw/am-empty (2021-12-15) 3 commits
235 - (merged to 'next' on 2021-12-27 at 562e1552f6)
236 - + am: support --allow-empty to record specific empty patches
237 - + am: support --empty=<option> to handle empty patches
238 - + doc: git-format-patch: describe the option --always
218
240 - "git am" learns "--empty=(stop|drop|keep)" option to tweak what is
241 - done to a piece of e-mail without a patch in it.
242 - source: <pull.1076.v19.git.1639034755.gitgitgadget@gmail.com>
219 +* hn/reftable-fixes (2021-12-23) 3 commits
220 + (merged to 'next' on 2022-01-03 at 532f9bbb27)
221 + + reftable: support preset file mode for writing
222 + + reftable: signal overflow
223 + + reftable: fix typo in header
224
244 ---------------------------------------------------
245 -[New Topics]
225 + Assorted fixlets in reftable code.
226 + source: <pull.1164.git.git.1640287790.gitgitgadget@gmail.com>
227
247 -* bc/csprng-mktemps (2022-01-04) 2 commits
248 - - wrapper: use a CSPRNG to generate random file names
249 - - wrapper: add a helper to generate numbers from a CSPRNG
228
251 - Pick a better random number generator and use it when we prepare
252 - temporary filenames.
229 +* hn/test-ref-store-show-hash-algo (2021-12-21) 1 commit
230 + (merged to 'next' on 2022-01-03 at 3cdbfeeaf1)
231 + + test-ref-store: print hash algorithm
232
254 - Expecting a reroll.
255 - cf. <YdTQodIhZ9273nJE@camp.crustytoothpaste.net>
256 - source: <20220104015555.3387101-1-sandals@crustytoothpaste.net>
233 + Debugging support for refs API.
234 + source: <pull.1167.git.git.1640092500725.gitgitgadget@gmail.com>
235
236
259 -* jc/reflog-parse-options (2022-01-05) 2 commits
260 - - builtin/reflog.c: use parse-options api for expire, delete subcommands
261 - - Merge branch 'ab/reflog-prep' into jc/reflog-parse-options
262 - (this branch uses ab/reflog-prep.)
237 +* ja/i18n-similar-messages (2022-01-05) 11 commits
238 + (merged to 'next' on 2022-01-06 at 6440d8fdf2)
239 + + i18n: turn even more messages into "cannot be used together" ones
240 + + i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
241 + + i18n: factorize "--foo outside a repository"
242 + + i18n: refactor "unrecognized %(foo) argument" strings
243 + + i18n: factorize "no directory given for --foo"
244 + + i18n: factorize "--foo requires --bar" and the like
245 + + i18n: tag.c factorize i18n strings
246 + + i18n: standardize "cannot open" and "cannot read"
247 + + i18n: turn "options are incompatible" into "cannot be used together"
248 + + i18n: refactor "%s, %s and %s are mutually exclusive"
249 + + i18n: refactor "foo and bar are mutually exclusive"
250
264 - Use the parse-options API in "git reflog" command.
265 - source: <pull.1175.v3.git.git.1641318061821.gitgitgadget@gmail.com>
251 + Similar message templates have been consolidated so that
252 + translators need to work on fewer number of messages.
253 + source: <pull.1088.v5.git.1641412944.gitgitgadget@gmail.com>
254
255
268 -* vd/sparse-clean-etc (2022-01-04) 9 commits
269 - - update-index: reduce scope of index expansion in do_reupdate
270 - - update-index: integrate with sparse index
271 - - update-index: add tests for sparse-checkout compatibility
272 - - checkout-index: integrate with sparse index
273 - - checkout-index: add --ignore-skip-worktree-bits option
274 - - checkout-index: expand sparse checkout compatibility tests
275 - - clean: integrate with sparse index
276 - - reset: reorder wildcard pathspec conditions
277 - - reset: fix validation in sparse index test
256 +* ja/perf-use-specified-shell (2021-12-25) 1 commit
257 + (merged to 'next' on 2022-01-03 at 8ca35ee3d0)
258 + + t/perf: do not run tests in user's $SHELL
259
279 - "git update-index", "git checkout-index", and "git clean" are
280 - taught to work better with the sparse checkout feature.
281 - source: <pull.1109.git.1641317820.gitgitgadget@gmail.com>
260 + Perf tests were run with end-user's shell, but it has been
261 + corrected to use the shell specified by $TEST_SHELL_PATH.
262 + source: <20211225081656.1311583-1-aclopte@gmail.com>
263
264
284 -* en/stash-df-fix (2022-01-04) 1 commit
285 - - stash: do not return before restoring untracked files
265 +* jc/doc-submitting-patches-choice-of-base (2021-12-30) 1 commit
266 + (merged to 'next' on 2022-01-05 at eb97c01c24)
267 + + SubmittingPatchs: clarify choice of base and testing
268
287 - "git stash apply" forgot to attempt restoring untracked files when
288 - it failed to restore changes to tracked ones.
269 + Extend the guidance to choose the base commit to build your work
270 + on, and hint/nudge contributors to read others' changes.
271 + source: <xmqqh7apsv6s.fsf_-_@gitster.g>
272
290 - Will merge to 'next'.
291 - source: <pull.1180.git.git.1641337498996.gitgitgadget@gmail.com>
273 +
274 +* jh/p4-human-unit-numbers (2021-12-20) 2 commits
275 + (merged to 'next' on 2022-01-03 at c385766ff4)
276 + + git-p4: show progress as an integer
277 + + git-p4: print size values in appropriate units
278 +
279 + The way "git p4" shows file sizes in its output has been updated to
280 + use human-readable units.
281 + source: <20211219154028.3288756-1-jholdsworth@nvidia.com>
282 +
283 +
284 +* jh/p4-remove-unused (2021-12-22) 2 commits
285 + (merged to 'next' on 2022-01-03 at 43f61b2fef)
286 + + git-p4: remove "rollback" verb
287 + + git-p4: remove "debug" verb
288 +
289 + Remove a few commands from "git p4" that aren't very useful.
290 + source: <20211222145552.93786-1-jholdsworth@nvidia.com>
291 +
292 +
293 +* jl/subtree-check-parents-argument-passing-fix (2022-01-04) 1 commit
294 + (merged to 'next' on 2022-01-05 at 7dc995f026)
295 + + subtree: fix argument handling in check_parents
296 +
297 + Fix performance-releated bug in "git subtree" (in contrib/).
298 + source: <pull.1086.v4.git.1638929518657.gitgitgadget@gmail.com>
299 +
300 +
301 +* js/branch-track-inherit (2021-12-20) 3 commits
302 + (merged to 'next' on 2022-01-03 at ab5fb34db3)
303 + + config: require lowercase for branch.*.autosetupmerge
304 + + branch: add flags and config to inherit tracking
305 + + branch: accept multiple upstream branches for tracking
306 + (this branch is used by gc/branch-recurse-submodules.)
307 +
308 + "git -c branch.autosetupmerge=inherit branch new old" makes "new"
309 + to have the same upstream as the "old" branch, instead of marking
310 + "old" itself as its upstream.
311 + source: <cover.1640039978.git.steadmon@google.com>
312 +
313 +
314 +* js/l10n-mention-ngettext-early-in-readme (2021-12-21) 1 commit
315 + (merged to 'next' on 2022-01-03 at a644f898ce)
316 + + l10n: README: call more attention to plural strings
317 +
318 + Localization doc update.
319 + source: <25107068cbbf8c9ce6886e66e25dff19e072583f.1639425295.git.steadmon@google.com>
320 +
321 +
322 +* jt/pack-header-lshift-overflow (2022-01-12) 1 commit
323 + (merged to 'next' on 2022-01-12 at fa27107ab3)
324 + + packfile: fix off-by-one error in decoding logic
325 +
326 + source: <xmqq4k68u30t.fsf@gitster.g>
327 +
328 +
329 +* jz/apply-3-corner-cases (2021-12-20) 1 commit
330 + (merged to 'next' on 2022-01-03 at cb8e19c304)
331 + + git-apply: skip threeway in add / rename cases
332 +
333 + "git apply --3way" bypasses the attempt to do a three-way
334 + application in more cases to address the regression caused by the
335 + recent change to use direct application as a fallback.
336 + source: <20211217224328.7646-1-jerry@skydio.com>
337 +
338 +
339 +* lh/use-gnu-color-in-grep (2022-01-05) 1 commit
340 + (merged to 'next' on 2022-01-05 at a0e2068cb7)
341 + + grep: align default colors with GNU grep ones
342 +
343 + The color palette used by "git grep" has been updated to match that
344 + of GNU grep.
345 + source: <20220105081835.4949-1-lenaic@lhuard.fr>
346 +
347 +
348 +* ma/header-dup-cleanup (2022-01-10) 1 commit
349 + (merged to 'next' on 2022-01-12 at de7891f5e8)
350 + + cache.h: drop duplicate `ensure_full_index()` declaration
351 +
352 + Code clean-up.
353 + source: <20220110184134.18675-1-martin.agren@gmail.com>
354 +
355 +
356 +* ma/windows-dynload-fix (2022-01-09) 1 commit
357 + (merged to 'next' on 2022-01-12 at af0a2e6c90)
358 + + lazyload: use correct calling conventions
359 +
360 + Fix calling dynamically loaded functions on Windows.
361 + source: <pull.1181.git.git.1641657750776.gitgitgadget@gmail.com>
362
363
364 * ms/t-readme-typofix (2022-01-04) 1 commit
295 - - t/README: fix typo
365 + (merged to 'next' on 2022-01-06 at 59288ebb22)
366 + + t/README: fix typo
367
368 Typofix.
298 -
299 - Will merge to 'next'.
369 source: <pull.1110.git.1641338224631.gitgitgadget@gmail.com>
370
371
303 -* ms/update-index-racy (2022-01-05) 2 commits
304 - - update-index: refresh should rewrite index in case of racy timestamps
305 - - t7508: add tests capturing racy timestamp handling
372 +* ps/lockfile-cleanup-fix (2022-01-07) 1 commit
373 + (merged to 'next' on 2022-01-10 at ff0ae63f07)
374 + + fetch: fix deadlock when cleaning up lockfiles in async signals
375
307 - source: <pull.1105.v2.git.1641388523.gitgitgadget@gmail.com>
376 + Some lockfile code called free() in signal-death code path, which
377 + has been corrected.
378 + source: <555ec6717ecab0fe6ef5660bcf0d61d59f84ef8b.1641552500.git.ps@pks.im>
379
309 ---------------------------------------------------
310 -[Stalled]
380
312 -* je/http-better-error-output (2021-12-03) 1 commit
313 - . http-backend: give a hint that web browser access is not supported
381 +* rb/nonstop-lacks-uncompress2 (2022-01-12) 1 commit
382 + (merged to 'next' on 2022-01-12 at 2387a47655)
383 + + build: NonStop ships with an older zlib
384
315 - When the http-backend program, which is the server-side component
316 - for the smart HTTP transport, sends a "404 Not found" error, we
317 - deliberately did not say anything to the requesting client. We now
318 - send a message back to the browser to tell the user that they do
319 - not want to visit the URL via their browser, instead of a totally
320 - blank page.
385 + source: <xmqqzgo0u5j7.fsf@gitster.g>
386
322 - Expecting a reroll.
323 - Breaks its self tests.
324 - cf. <7r23s082-o3q0-479o-srqn-r45q778s5nq7@vanv.qr>
325 - source: <20211202102855.23907-1-jengelh@inai.de>
387
388 +* ws/fast-export-with-revision-options (2021-12-21) 1 commit
389 + (merged to 'next' on 2022-01-03 at f94f7f70b6)
390 + + fast-export: fix surprising behavior with --first-parent
391
328 -* cb/save-term-across-editor-invocation (2021-12-01) 3 commits
329 - - fixup! editor: allow for saving/restoring terminal state
330 - - editor: allow for saving/restoring terminal state
331 - - terminal: teach save_term to fail when not foreground
392 + Use of certain "git rev-list" options with "git fast-export"
393 + created nonsense results (the worst two of which being "--reverse"
394 + and "--invert-grep --grep=<foo>"). The use of "--first-parent" is
395 + made to behave a bit more sensible than before.
396 + source: <pull.1084.v2.git.1639037637231.gitgitgadget@gmail.com>
397
333 - Some editors are reported to leave the terminal in funny state
334 - after they exit on Windows. Work it around by saving and restoring
335 - the terminal state when needed.
398 +--------------------------------------------------
399 +[New Topics]
400
337 - Expecting a reroll.
338 - cf. <CAPUEsphktbdxeV7hvF52Or3CVHS8oOk5-WV=xfEZa8kfCVVnVg@mail.gmail.com>
339 - source: <20211202035446.1154-1-carenas@gmail.com>
401 +* jh/p4-fix-use-of-process-error-exception (2022-01-06) 1 commit
402 + (merged to 'next' on 2022-01-10 at 49d529bfd7)
403 + + git-p4: fix instantiation of CalledProcessError
404
405 + Will cook in 'next'.
406 + source: <20220106214156.90967-1-jholdsworth@nvidia.com>
407
342 -* ar/submodule-update (2021-10-13) 9 commits
343 - . submodule--helper: rename helper functions
344 - . submodule--helper: remove unused helpers
345 - . submodule: move core cmd_update() logic to C
346 - . submodule--helper: run update using child process struct
347 - . submodule--helper: allow setting superprefix for init_submodule()
348 - . submodule--helper: refactor get_submodule_displaypath()
349 - . submodule--helper: rename helpers for update-clone
350 - . submodule--helper: get remote names from any repository
351 - . submodule--helper: split up ensure_core_worktree()
408
353 - Rewrite of "git submodule update" in C.
409 +* jh/p4-spawning-external-commands-cleanup (2022-01-06) 3 commits
410 + (merged to 'next' on 2022-01-10 at 54b36b4e66)
411 + + git-p4: don't print shell commands as python lists
412 + + git-p4: pass command arguments as lists instead of using shell
413 + + git-p4: don't select shell mode using the type of the command argument
414
355 - Expecting a reroll?
356 - cf. <YWiXL+plA7GHfuVv@google.com>
357 - source: <20211013051805.45662-10-raykar.ath@gmail.com>
415 + Will cook in 'next'.
416 + source: <20220106214035.90725-1-jholdsworth@nvidia.com>
417
359 ---------------------------------------------------
360 -[Cooking]
418
362 -* en/merge-ort-renorm-with-rename-delete-conflict-fix (2021-12-30) 1 commit
363 - (merged to 'next' on 2022-01-05 at bb81dd432d)
364 - + merge-ort: fix bug with renormalization and rename/delete conflicts
419 +* pb/pull-rebase-autostash-fix (2022-01-06) 1 commit
420 + - pull --rebase: honor rebase.autostash even when fast-forwarding
421
366 - A corner case bug in the ort merge strategy has been corrected.
422 + "git pull --rebase" ignored the rebase.autostash configuration
423 + variable when the remote history is a descendant of our history,
424 + which has been corrected.
425
368 - Will merge to 'master'.
369 - source: <pull.1174.git.git.1640650846612.gitgitgadget@gmail.com>
426 + Expecting an ack or two.
427 + source: <4fe0e850-1c30-da70-5535-e2a4105ba734@gmail.com>
428
429
372 -* jc/find-header (2022-01-03) 1 commit
373 - - receive-pack.c: consolidate find header logic
430 +* rs/grep-expr-cleanup (2022-01-06) 4 commits
431 + (merged to 'next' on 2022-01-10 at b70a3bb0fa)
432 + + grep: use grep_and_expr() in compile_pattern_and()
433 + + grep: extract grep_binexp() from grep_or_expr()
434 + + grep: use grep_not_expr() in compile_pattern_not()
435 + + grep: use grep_or_expr() in compile_pattern_or()
436
437 Code clean-up.
438
377 - Will merge to 'next'?
378 - source: <pull.1125.v2.git.git.1640758765723.gitgitgadget@gmail.com>
439 + Will cook in 'next'.
440 + source: <cover.1641498525.git.me@ttaylorr.com>
441
442
381 -* jc/name-rev-stdin (2022-01-05) 2 commits
382 - - name-rev.c: use strbuf_getline instead of limited size buffer
383 - - name-rev: deprecate --stdin in favor of --annotate-stdin
443 +* fs/ssh-signing-crlf (2022-01-07) 1 commit
444 + - gpg-interface: trim CR from ssh-keygen
445
385 - "git name-rev --stdin" does not behave like usual "--stdin" at
386 - all. Start the process of renaming it to "--annotate-stdin".
446 + The code path that verifies signatures made with ssh were made to
447 + work better on a system with CRLF line endings.
448
388 - Not quite ready yet.
389 - source: <pull.1171.v5.git.git.1641356439.gitgitgadget@gmail.com>
449 + Will merge to 'next'?
450 + source: <20220103095337.600536-1-fs@gigacodes.de>
451
452
392 -* ab/makefile-hook-list-dependency-fix (2021-12-25) 1 commit
393 - (merged to 'next' on 2022-01-03 at 8c8ca0cbce)
394 - + Makefile: correct the dependency graph of hook-list.h
453 +* jc/qsort-s-alignment-fix (2022-01-07) 2 commits
454 + (merged to 'next' on 2022-01-10 at 329fd6e09a)
455 + + stable-qsort: avoid using potentially unaligned access
456 + + compat/qsort_s.c: avoid using potentially unaligned access
457
396 - Fix dependency rules to generate hook-list.h header file.
458 + Fix a hand-rolled alloca() imitation that may have violated
459 + alignment requirement of data being sorted in compatibility
460 + implementation of qsort_s() and stable qsort().
461
398 - Will merge to 'master'.
399 - source: <patch-1.1-1fafa6c643b-20211217T001137Z-avarab@gmail.com>
462 + Will cook in 'next'.
463 + source: <f40c1b47-9aad-2dcc-ceeb-5dee2b517cd8@web.de>
464 + source: <xmqqzgo76xpj.fsf@gitster.g>
465
466
402 -* ab/makefile-msgfmt-wo-stats (2021-12-25) 1 commit
403 - (merged to 'next' on 2022-01-03 at 2e2097c310)
404 - + Makefile: don't invoke msgfmt with --statistics
467 +* ps/avoid-unnecessary-hook-invocation-with-packed-refs (2022-01-12) 7 commits
468 + - fixup! refs: open-code deletion of packed refs
469 + - refs: skip hooks when deleting uncovered packed refs
470 + - refs: do not execute reference-transaction hook on packing refs
471 + - refs: demonstrate excessive execution of the reference-transaction hook
472 + - refs: allow skipping the reference-transaction hook
473 + - refs: allow passing flags when beginning transactions
474 + - refs: open-code deletion of packed refs
475
406 - Make the recipe that runs msgfmt less noisy.
476 + Because a deletion of ref would need to remove it from both the
477 + loose ref store and the packed ref store, a delete-ref operation
478 + that logically removes one ref may end up invoking ref-transaction
479 + hook twice, which has been corrected.
480
408 - Will merge to 'master'.
409 - source: <patch-1.1-58408f384e7-20211217T000729Z-avarab@gmail.com>
481 + Under review.
482 + source: <cover.1641556319.git.ps@pks.im>
483
484
412 -* ab/makefile-pager-env-is-used-only-by-pager.c (2021-12-25) 1 commit
413 - (merged to 'next' on 2022-01-03 at 7ab1e1c5c4)
414 - + Makefile: move -DPAGER_ENV from BASIC_CFLAGS to EXTRA_CPPFLAGS
485 +* rs/apply-symlinks-use-strset (2022-01-07) 1 commit
486 + (merged to 'next' on 2022-01-10 at 32497a67d5)
487 + + apply: use strsets to track symlinks
488
416 - Will merge to 'master'.
417 - source: <patch-1.1-90d1e77ad5e-20211217T001628Z-avarab@gmail.com>
489 + "git apply" (ab)used the util pointer of the string-list to keep
490 + track of how each symbolic link needs to be handled, which has been
491 + simplified by using strset.
492
493 + Will cook in 'next'.
494 + source: <8739caad-aa3d-1f0f-b5dd-6174a8e059f6@web.de>
495
420 -* ab/do-not-limit-stash-help-to-push (2021-12-16) 1 commit
421 - (merged to 'next' on 2022-01-03 at adfc0c1f17)
422 - + stash: don't show "git stash push" usage on bad "git stash" usage
496
424 - "git stash" by default triggers its "push" action, but its
425 - implementation also made "git stash -h" to show short help only for
426 - "git stash push", which has been corrected.
497 +* ld/sparse-index-bash-completion (2022-01-10) 3 commits
498 + - sparse-checkout: limit tab completion to a single level
499 + - sparse-checkout: custom tab completion
500 + - sparse-checkout: custom tab completion tests
501
428 - Will merge to 'master'.
429 - source: <patch-v3-1.1-6b33b104c84-20211216T125317Z-avarab@gmail.com>
502 + The command line completion (in contrib/) learns to complete
503 + arguments give to "git sparse-checkout" command.
504 + source: <pull.1108.v3.git.1641841193.gitgitgadget@gmail.com>
505
506
432 -* lh/use-gnu-color-in-grep (2022-01-05) 1 commit
433 - (merged to 'next' on 2022-01-05 at a0e2068cb7)
434 - + grep: align default colors with GNU grep ones
507 +* bc/clarify-eol-attr (2022-01-12) 2 commits
508 + - docs: correct documentation about eol attribute
509 + - t0027: add tests for eol without text in .gitattributes
510
436 - The color palette used by "git grep" has been updated to match that
437 - of GNU grep.
511 + Doc and test update around the eol attribute.
512 + source: <20220111021507.531736-1-sandals@crustytoothpaste.net>
513
439 - Will merge to 'master'.
440 - source: <20220105081835.4949-1-lenaic@lhuard.fr>
514
515 +* jz/rev-list-exclude-first-parent-only (2022-01-12) 1 commit
516 + - git-rev-list: add --exclude-first-parent-only flag
517
443 -* ws/fast-export-with-revision-options (2021-12-21) 1 commit
444 - (merged to 'next' on 2022-01-03 at f94f7f70b6)
445 - + fast-export: fix surprising behavior with --first-parent
518 + "git log" and friends learned an option --exclude-first-parent-only
519 + to propagate UNINTERESTING bit down only along the first-parent
520 + chain, just like --first-parent option shows commits that lack the
521 + UNINTERESTING bit only along the first-parent chain.
522 + source: <20220111213941.30129-1-jerry@skydio.com>
523
447 - Use of certain "git rev-list" options with "git fast-export"
448 - created nonsense results (the worst two of which being "--reverse"
449 - and "--invert-grep --grep=<foo>"). The use of "--first-parent" is
450 - made to behave a bit more sensible than before.
524
452 - Will merge to 'master'.
453 - source: <pull.1084.v2.git.1639037637231.gitgitgadget@gmail.com>
525 +* ab/refs-errno-cleanup (2022-01-13) 1 commit
526 + - refs API: use "failure_errno", not "errno"
527
528 + A brown-paper-bag fix on top of a topic that was merged during this
529 + cycle.
530
456 -* jh/p4-human-unit-numbers (2021-12-20) 2 commits
457 - (merged to 'next' on 2022-01-03 at c385766ff4)
458 - + git-p4: show progress as an integer
459 - + git-p4: print size values in appropriate units
531 + Will merge to 'next' and then to 'master'.
532 + source: <patch-v3-1.3-a45268ac24b-20220112T123117Z-avarab@gmail.com>
533
461 - The way "git p4" shows file sizes in its output has been updated to
462 - use human-readable units.
534
464 - Will merge to 'master'.
465 - source: <20211219154028.3288756-1-jholdsworth@nvidia.com>
535 +* ab/reftable-build-fixes (2022-01-13) 2 commits
536 + - reftable tests: avoid "int" overflow, use "uint64_t"
537 + - reftable: avoid initializing structs from structs
538
539 + A few portability tweaks.
540
468 -* jz/apply-3-corner-cases (2021-12-20) 1 commit
469 - (merged to 'next' on 2022-01-03 at cb8e19c304)
470 - + git-apply: skip threeway in add / rename cases
541 + Will merge to 'next' and then to 'master'?
542 + source: <cover-0.3-00000000000-20220111T163908Z-avarab@gmail.com>
543
472 - "git apply --3way" bypasses the attempt to do a three-way
473 - application in more cases to address the regression caused by the
474 - recent change to use direct application as a fallback.
544
476 - Will merge to 'master'.
477 - source: <20211217224328.7646-1-jerry@skydio.com>
545 +* en/present-despite-skipped (2022-01-13) 6 commits
546 + . Accelerate clear_skip_worktree_from_present_files() by caching
547 + . Update documentation related to sparsity and the skip-worktree bit
548 + . repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
549 + . unpack-trees: fix accidental loss of user changes
550 + . t1011: add testcase demonstrating accidental loss of user modifications
551 + . Merge branch 'vd/sparse-clean-etc' into en/present-despite-skipped
552 + (this branch uses vd/sparse-clean-etc.)
553
554 + With this topic merged, 'seen' seems to fail t1092.
555 + source: <pull.1114.git.1642092230.gitgitgadget@gmail.com>
556
480 -* pw/add-p-hunk-split-fix (2021-12-20) 2 commits
481 - - builtin add -p: fix hunk splitting
482 - - t3701: clean up hunk splitting tests
557
484 - "git add -p" rewritten in C regressed hunk splitting in some cases,
485 - which has been corrected.
558 +* js/t1450-making-it-writable-does-not-need-full-posixperm (2022-01-13) 1 commit
559 + - t1450-fsck: exec-bit is not needed to make loose object writable
560
487 - Expecting a reroll.
488 - source: <pull.1100.git.1640010777.gitgitgadget@gmail.com>
561 + Test fix.
562 +
563 + Will merge to 'next'.
564 + source: <529d99f3-13c8-ffc1-dd4c-3fc70330262a@kdbg.org>
565
566 +--------------------------------------------------
567 +[Stalled]
568
569 * ds/sparse-checkout-requires-per-worktree-config (2021-12-21) 5 commits
570 . sparse-checkout: use repo_config_set_worktree_gently()
@@ -500,163 +578,193 @@ Release tarballs are available at:
578 source: <pull.1101.v2.git.1640114048.gitgitgadget@gmail.com>
579
580
503 -* en/remerge-diff (2021-12-30) 10 commits
504 - - merge-ort: mark conflict/warning messages from inner merges as omittable
505 - - show, log: include conflict/warning messages in --remerge-diff headers
506 - - diff: add ability to insert additional headers for paths
507 - - merge-ort: format messages slightly different for use in headers
508 - - merge-ort: mark a few more conflict messages as omittable
509 - - merge-ort: capture and print ll-merge warnings in our preferred fashion
510 - - ll-merge: make callers responsible for showing warnings
511 - - log: clean unneeded objects during `log --remerge-diff`
512 - - show, log: provide a --remerge-diff capability
513 - - Merge branch 'ns/tmp-objdir' into en/remerge-diff
581 +* pw/add-p-hunk-split-fix (2022-01-12) 2 commits
582 + - builtin add -p: fix hunk splitting
583 + - t3701: clean up hunk splitting tests
584
515 - "git log --remerge-diff" shows the difference from mechanical merge
516 - result and the merge result that is actually recorded.
517 - source: <pull.1103.v3.git.1640907369.gitgitgadget@gmail.com>
585 + "git add -p" rewritten in C regressed hunk splitting in some cases,
586 + which has been corrected.
587
588 + Will merge to 'next'?
589 + source: <pull.1100.v2.git.1641899530.gitgitgadget@gmail.com>
590
520 -* gc/fetch-negotiate-only-early-return (2021-12-21) 3 commits
521 - - builtin/fetch: die on --negotiate-only and --recurse-submodules
522 - - builtin/fetch: skip unnecessary tasks when using --negotiate-only
523 - - builtin/fetch: use goto cleanup in cmd_fetch()
591
525 - Expecting a reroll.
526 - cf. <kl6l4k70z8po.fsf@chooglen-macbookpro.roam.corp.google.com>
527 - source: <20211222001134.28933-1-chooglen@google.com>
592 +* gc/fetch-negotiate-only-early-return (2022-01-12) 3 commits
593 + - fetch --negotiate-only: do not update submodules
594 + - fetch: skip tasks related to fetching objects
595 + - fetch: use goto cleanup in cmd_fetch()
596
597 + "git fetch --nogotiate-only" is an internal command used by "git
598 + push" to figure out which part of our history is missing from the
599 + other side. It should never recurse into submodules even when
600 + fetch.recursesubmodules configuration variable is set, nor it
601 + should trigger "gc". The code has been tightened up to ensure it
602 + only does common ancestry discovery and nothing else.
603
530 -* hn/refs-debug-update (2021-12-22) 3 commits
531 - (merged to 'next' on 2022-01-03 at 1cd451c66c)
532 - + refs: centralize initialization of the base ref_store.
533 - + refs: print error message in debug output
534 - + refs: pass gitdir to packed_ref_store_create
604 + Almost there.
605 + source: <20220113004501.78822-1-chooglen@google.com>
606
536 - Debugging support for refs API.
607
538 - Will merge to 'master'.
539 - source: <pull.1163.v2.git.git.1640196714.gitgitgadget@gmail.com>
608 +* je/http-better-error-output (2021-12-03) 1 commit
609 + . http-backend: give a hint that web browser access is not supported
610
611 + When the http-backend program, which is the server-side component
612 + for the smart HTTP transport, sends a "404 Not found" error, we
613 + deliberately did not say anything to the requesting client. We now
614 + send a message back to the browser to tell the user that they do
615 + not want to visit the URL via their browser, instead of a totally
616 + blank page.
617
542 -* hn/test-ref-store-show-hash-algo (2021-12-21) 1 commit
543 - (merged to 'next' on 2022-01-03 at 3cdbfeeaf1)
544 - + test-ref-store: print hash algorithm
618 + Expecting a reroll.
619 + Breaks its self tests.
620 + cf. <7r23s082-o3q0-479o-srqn-r45q778s5nq7@vanv.qr>
621 + source: <20211202102855.23907-1-jengelh@inai.de>
622
546 - Debugging support for refs API.
623
548 - Will merge to 'master'.
549 - source: <pull.1167.git.git.1640092500725.gitgitgadget@gmail.com>
624 +* cb/save-term-across-editor-invocation (2021-12-01) 3 commits
625 + - fixup! editor: allow for saving/restoring terminal state
626 + - editor: allow for saving/restoring terminal state
627 + - terminal: teach save_term to fail when not foreground
628 +
629 + Some editors are reported to leave the terminal in funny state
630 + after they exit on Windows. Work it around by saving and restoring
631 + the terminal state when needed.
632 +
633 + Expecting a reroll.
634 + cf. <CAPUEsphktbdxeV7hvF52Or3CVHS8oOk5-WV=xfEZa8kfCVVnVg@mail.gmail.com>
635 + source: <20211202035446.1154-1-carenas@gmail.com>
636 +
637 +
638 +* ar/submodule-update (2021-10-13) 9 commits
639 + . submodule--helper: rename helper functions
640 + . submodule--helper: remove unused helpers
641 + . submodule: move core cmd_update() logic to C
642 + . submodule--helper: run update using child process struct
643 + . submodule--helper: allow setting superprefix for init_submodule()
644 + . submodule--helper: refactor get_submodule_displaypath()
645 + . submodule--helper: rename helpers for update-clone
646 + . submodule--helper: get remote names from any repository
647 + . submodule--helper: split up ensure_core_worktree()
648 +
649 + Rewrite of "git submodule update" in C.
650
651 + Expecting a reroll?
652 + cf. <YWiXL+plA7GHfuVv@google.com>
653 + source: <20211013051805.45662-10-raykar.ath@gmail.com>
654
552 -* ja/perf-use-specified-shell (2021-12-25) 1 commit
553 - (merged to 'next' on 2022-01-03 at 8ca35ee3d0)
554 - + t/perf: do not run tests in user's $SHELL
655 +--------------------------------------------------
656 +[Cooking]
657
556 - Perf tests were run with end-user's shell, but it has been
557 - corrected to use the shell specified by $TEST_SHELL_PATH.
658 +* bc/csprng-mktemps (2022-01-04) 2 commits
659 + - wrapper: use a CSPRNG to generate random file names
660 + - wrapper: add a helper to generate numbers from a CSPRNG
661
559 - Will merge to 'master'.
560 - source: <20211225081656.1311583-1-aclopte@gmail.com>
662 + Pick a better random number generator and use it when we prepare
663 + temporary filenames.
664
665 + Expecting a reroll.
666 + cf. <YdTQodIhZ9273nJE@camp.crustytoothpaste.net>
667 + source: <20220104015555.3387101-1-sandals@crustytoothpaste.net>
668
563 -* js/l10n-mention-ngettext-early-in-readme (2021-12-21) 1 commit
564 - (merged to 'next' on 2022-01-03 at a644f898ce)
565 - + l10n: README: call more attention to plural strings
669
567 - Localization doc update.
670 +* jc/reflog-parse-options (2022-01-10) 2 commits
671 + (merged to 'next' on 2022-01-12 at 1659e49c4b)
672 + + builtin/reflog.c: use parse-options api for expire, delete subcommands
673 + + Merge branch 'ab/reflog-prep' into jc/reflog-parse-options
674
569 - Will merge to 'master'.
570 - source: <25107068cbbf8c9ce6886e66e25dff19e072583f.1639425295.git.steadmon@google.com>
675 + Use the parse-options API in "git reflog" command.
676
677 + Will cook in 'next'.
678 + source: <pull.1175.v5.git.git.1641495981650.gitgitgadget@gmail.com>
679
573 -* ab/reflog-prep (2021-12-22) 9 commits
574 - (merged to 'next' on 2022-01-03 at 07d2d78d86)
575 - + reflog + refs-backend: move "verbose" out of the backend
576 - + refs files-backend: assume cb->newlog if !EXPIRE_REFLOGS_DRY_RUN
577 - + reflog: reduce scope of "struct rev_info"
578 - + reflog expire: don't use lookup_commit_reference_gently()
579 - + reflog expire: refactor & use "tip_commit" only for UE_NORMAL
580 - + reflog expire: use "switch" over enum values
581 - + reflog: change one->many worktree->refnames to use a string_list
582 - + reflog expire: narrow scope of "cb" in cmd_reflog_expire()
583 - + reflog delete: narrow scope of "cmd" passed to count_reflog_ent()
584 - (this branch is used by jc/reflog-parse-options.)
680
586 - Code refactoring in the reflog part of refs API.
681 +* vd/sparse-clean-etc (2022-01-13) 9 commits
682 + - update-index: reduce scope of index expansion in do_reupdate
683 + - update-index: integrate with sparse index
684 + - update-index: add tests for sparse-checkout compatibility
685 + - checkout-index: integrate with sparse index
686 + - checkout-index: add --ignore-skip-worktree-bits option
687 + - checkout-index: expand sparse checkout compatibility tests
688 + - clean: integrate with sparse index
689 + - reset: reorder wildcard pathspec conditions
690 + - reset: fix validation in sparse index test
691 + (this branch is used by en/present-despite-skipped.)
692
588 - Will merge to 'master'.
589 - source: <cover-v3-0.9-00000000000-20211222T040557Z-avarab@gmail.com>
693 + "git update-index", "git checkout-index", and "git clean" are
694 + taught to work better with the sparse checkout feature.
695 + source: <pull.1109.v2.git.1641924306.gitgitgadget@gmail.com>
696
697
592 -* bs/forbid-i18n-of-protocol-token-in-fetch-pack (2021-12-22) 2 commits
593 - - fixup! fetch-pack: parameterize message containing 'ready' keyword
594 - - fetch-pack: parameterize message containing 'ready' keyword
698 +* ms/update-index-racy (2022-01-07) 4 commits
699 + - update-index: refresh should rewrite index in case of racy timestamps
700 + - t7508: add tests capturing racy timestamp handling
701 + - t7508: fix bogus mtime verification
702 + - test-lib: introduce API for verifying file mtime
703
596 - L10n support for a few error messages.
704 + "git update-index --refresh" has been taught to deal better with
705 + racy timestamps (just like "git status" already does).
706
598 - Expecting an ack for fixup.
599 - source: <20211222075805.19027-1-bagasdotme@gmail.com>
707 + Will merge to 'next'.
708 + source: <pull.1105.v4.git.1641554252.gitgitgadget@gmail.com>
709
710
602 -* hn/ref-api-tests-update (2021-12-22) 4 commits
603 - (merged to 'next' on 2022-01-03 at 6815d4d8c1)
604 - + t7004: use "test-tool ref-store" for reflog inspection
605 - + t7004: create separate tags for different tests
606 - + t5550: require REFFILES
607 - + t5540: require REFFILES
711 +* jc/find-header (2022-01-06) 1 commit
712 + (merged to 'next' on 2022-01-10 at 8a13b4f0b3)
713 + + receive-pack.c: consolidate find header logic
714
609 - Test updates.
715 + Code clean-up.
716
611 - Will merge to 'master'.
612 - source: <pull.1168.git.git.1640170784.gitgitgadget@gmail.com>
717 + Will cook in 'next'.
718 + source: <pull.1125.v6.git.git.1641499655700.gitgitgadget@gmail.com>
719
720
615 -* jh/p4-remove-unused (2021-12-22) 2 commits
616 - (merged to 'next' on 2022-01-03 at 43f61b2fef)
617 - + git-p4: remove "rollback" verb
618 - + git-p4: remove "debug" verb
721 +* jc/name-rev-stdin (2022-01-10) 2 commits
722 + - name-rev.c: use strbuf_getline instead of limited size buffer
723 + - name-rev: deprecate --stdin in favor of --annotate-stdin
724
620 - Remove a few commands from "git p4" that aren't very useful.
725 + "git name-rev --stdin" does not behave like usual "--stdin" at
726 + all. Start the process of renaming it to "--annotate-stdin".
727
622 - Will merge to 'master'.
623 - source: <20211222145552.93786-1-jholdsworth@nvidia.com>
728 + Will merge to 'next'?
729 + source: <pull.1171.v7.git.git.1641425372.gitgitgadget@gmail.com>
730
731
626 -* hn/reftable-fixes (2021-12-23) 3 commits
627 - (merged to 'next' on 2022-01-03 at 532f9bbb27)
628 - + reftable: support preset file mode for writing
629 - + reftable: signal overflow
630 - + reftable: fix typo in header
732 +* en/remerge-diff (2021-12-30) 10 commits
733 + - merge-ort: mark conflict/warning messages from inner merges as omittable
734 + - show, log: include conflict/warning messages in --remerge-diff headers
735 + - diff: add ability to insert additional headers for paths
736 + - merge-ort: format messages slightly different for use in headers
737 + - merge-ort: mark a few more conflict messages as omittable
738 + - merge-ort: capture and print ll-merge warnings in our preferred fashion
739 + - ll-merge: make callers responsible for showing warnings
740 + - log: clean unneeded objects during `log --remerge-diff`
741 + - show, log: provide a --remerge-diff capability
742 + - Merge branch 'ns/tmp-objdir' into en/remerge-diff
743
632 - Assorted fixlets in reftable code.
744 + "git log --remerge-diff" shows the difference from mechanical merge
745 + result and the merge result that is actually recorded.
746
634 - Will merge to 'master'.
635 - source: <pull.1164.git.git.1640287790.gitgitgadget@gmail.com>
747 + Will merge to 'next'?
748 + source: <pull.1103.v3.git.1640907369.gitgitgadget@gmail.com>
749
750
638 -* ds/sparse-checkout-malformed-pattern-fix (2021-12-30) 3 commits
639 - (merged to 'next' on 2021-12-30 at c8b2ade48c)
640 - + sparse-checkout: refuse to add to bad patterns
641 - + sparse-checkout: fix OOM error with mixed patterns
642 - + sparse-checkout: fix segfault on malformed patterns
751 +* bs/forbid-i18n-of-protocol-token-in-fetch-pack (2021-12-22) 2 commits
752 + - fixup! fetch-pack: parameterize message containing 'ready' keyword
753 + - fetch-pack: parameterize message containing 'ready' keyword
754
644 - Certain sparse-checkout patterns that are valid in non-cone mode
645 - led to segfault in cone mode, which has been corrected.
755 + L10n support for a few error messages.
756
647 - Will merge to 'master'.
648 - source: <pull.1069.v4.git.1639671222.gitgitgadget@gmail.com>
757 + Expecting an ack for fixup.
758 + source: <20211222075805.19027-1-bagasdotme@gmail.com>
759
760
651 -* gc/branch-recurse-submodules (2021-12-25) 7 commits
652 - - fixup! branch: add --recurse-submodules option for branch creation
761 +* gc/branch-recurse-submodules (2022-01-10) 6 commits
762 - branch: add --recurse-submodules option for branch creation
763 - builtin/branch: clean up action-picking logic in cmd_branch()
764 - branch: add a dry_run parameter to create_branch()
765 - branch: make create_branch() always create a branch
766 - branch: move --set-upstream-to behavior to dwim_and_setup_tracking()
767 - Merge branch 'js/branch-track-inherit' into gc/branch-recurse-submodules
659 - (this branch uses js/branch-track-inherit.)
768
769 "git branch" learned the "--recurse-submodules" option.
770
@@ -705,6 +813,9 @@ Release tarballs are available at:
813
814 A bug that made multi-pack bitmap and the object order out-of-sync
815 (hence the .midx data gets corrupted) has been fixed.
816 +
817 + Waiting for a hopefully final review.
818 + cf. <Ydceeo33Yt4N%2FbrN@nand.local>
819 source: <cover.1641320129.git.me@ttaylorr.com>
820
821
@@ -735,42 +846,10 @@ Release tarballs are available at:
846 source: <pull.1049.v2.git.1638975481.gitgitgadget@gmail.com>
847
848
738 -* ja/i18n-similar-messages (2022-01-05) 11 commits
739 - - i18n: turn even more messages into "cannot be used together" ones
740 - - i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
741 - - i18n: factorize "--foo outside a repository"
742 - - i18n: refactor "unrecognized %(foo) argument" strings
743 - - i18n: factorize "no directory given for --foo"
744 - - i18n: factorize "--foo requires --bar" and the like
745 - - i18n: tag.c factorize i18n strings
746 - - i18n: standardize "cannot open" and "cannot read"
747 - - i18n: turn "options are incompatible" into "cannot be used together"
748 - - i18n: refactor "%s, %s and %s are mutually exclusive"
749 - - i18n: refactor "foo and bar are mutually exclusive"
750 -
751 - Similar message templates have been consolidated so that
752 - translators need to work on fewer number of messages.
753 -
754 - Will merge to 'next'.
755 - source: <pull.1088.v5.git.1641412944.gitgitgadget@gmail.com>
756 -
757 -
758 -* ab/usage-die-message (2021-12-07) 6 commits
759 - (merged to 'next' on 2022-01-03 at 0ef3860099)
760 - + config API: use get_error_routine(), not vreportf()
761 - + usage.c + gc: add and use a die_message_errno()
762 - + gc: return from cmd_gc(), don't call exit()
763 - + usage.c API users: use die_message() for error() + exit 128
764 - + usage.c API users: use die_message() for "fatal :" + exit 128
765 - + usage.c: add a die_message() routine
766 -
767 - Code clean-up to hide vreportf() from public API.
768 -
769 - Will merge to 'master'.
770 - source: <cover-v2-0.6-00000000000-20211207T182419Z-avarab@gmail.com>
771 -
772 -
773 -* ab/cat-file (2021-12-30) 10 commits
849 +* ab/cat-file (2022-01-12) 12 commits
850 + (merged to 'next' on 2022-01-12 at ee4d43041d)
851 + + cat-file: s/_/-/ in typo'd usage_msg_optf() message
852 + + cat-file: don't whitespace-pad "(...)" in SYNOPSIS and usage output
853 (merged to 'next' on 2022-01-05 at e145efa605)
854 + cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
855 + object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
@@ -785,19 +864,19 @@ Release tarballs are available at:
864
865 Assorted updates to "git cat-file", especially "-h".
866
788 - Will merge to 'master'.
867 + Will cook in 'next'.
868 source: <cover-v6-00.10-00000000000-20211228T132637Z-avarab@gmail.com>
869 + source: <cover-0.2-00000000000-20220110T220553Z-avarab@gmail.com>
870
871
792 -* ab/grep-patterntype (2021-12-27) 8 commits
793 - . grep: simplify config parsing and option parsing
794 - . grep API: call grep_config() after grep_init()
795 - . grep.c: don't pass along NULL callback value
796 - . built-ins: trust the "prefix" from run_builtin()
797 - . fixup! grep tests: add missing "grep.patternType" config tests
798 - . grep tests: add missing "grep.patternType" config tests
799 - . log tests: check if grep_config() is called by "log"-like cmds
800 - . grep.h: remove unused "regex_t regexp" from grep_opt
872 +* ab/grep-patterntype (2021-12-27) 7 commits
873 + - grep API: call grep_config() after grep_init()
874 + - grep.c: don't pass along NULL callback value
875 + - built-ins: trust the "prefix" from run_builtin()
876 + - fixup! grep tests: add missing "grep.patternType" config tests
877 + - grep tests: add missing "grep.patternType" config tests
878 + - log tests: check if grep_config() is called by "log"-like cmds
879 + - grep.h: remove unused "regex_t regexp" from grep_opt
880
881 Some code clean-up in the "git grep" machinery.
882
@@ -831,48 +910,7 @@ Release tarballs are available at:
910 source: <cover.1639509048.git.jonathantanmy@google.com>
911
912
834 -* tb/cruft-packs (2021-11-29) 17 commits
835 - . sha1-file.c: don't freshen cruft packs
836 - . builtin/gc.c: conditionally avoid pruning objects via loose
837 - . builtin/repack.c: add cruft packs to MIDX during geometric repack
838 - . builtin/repack.c: use named flags for existing_packs
839 - . builtin/repack.c: allow configuring cruft pack generation
840 - . builtin/repack.c: support generating a cruft pack
841 - . builtin/pack-objects.c: --cruft with expiration
842 - . reachable: report precise timestamps from objects in cruft packs
843 - . reachable: add options to add_unseen_recent_objects_to_traversal
844 - . builtin/pack-objects.c: --cruft without expiration
845 - . builtin/pack-objects.c: return from create_object_entry()
846 - . t/helper: add 'pack-mtimes' test-tool
847 - . pack-mtimes: support writing pack .mtimes files
848 - . chunk-format.h: extract oid_version()
849 - . pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
850 - . pack-mtimes: support reading .mtimes files
851 - . Documentation/technical: add cruft-packs.txt
852 -
853 - Instead of leaving unreachable objects in loose form when packing,
854 - or ejecting them into loose form when repacking, gather them in a
855 - packfile with an auxiliary file that records the last-use time of
856 - these objects.
857 -
858 - Expecting a reroll.
859 - cf. <865b99dd-0b18-9a07-49c1-3959a777c685@gmail.com>
860 - cf. <c9437c89-9258-4034-9886-8a2aec46aa6b@gmail.com>
861 - cf. <YaqiYGM48p5F9lS1@nand.local>
862 - source: <cover.1638224692.git.me@ttaylorr.com>
863 -
864 -
865 -* jl/subtree-check-parents-argument-passing-fix (2022-01-04) 1 commit
866 - (merged to 'next' on 2022-01-05 at 7dc995f026)
867 - + subtree: fix argument handling in check_parents
868 -
869 - Fix performance-releated bug in "git subtree" (in contrib/).
870 -
871 - Will merge to 'master'.
872 - source: <pull.1086.v4.git.1638929518657.gitgitgadget@gmail.com>
873 -
874 -
875 -* ab/ambiguous-object-name (2021-12-30) 6 commits
913 +* ab/ambiguous-object-name (2022-01-13) 6 commits
914 - object-name: re-use "struct strbuf" in show_ambiguous_object()
915 - object-name: iterate ambiguous objects before showing header
916 - object-name: show date for ambiguous tag objects
@@ -882,54 +920,26 @@ Release tarballs are available at:
920
921 Error output given in response to an ambiguous object name has been
922 improved.
885 - source: <cover-v6-0.6-00000000000-20211228T143223Z-avarab@gmail.com>
886 -
887 -
888 -* tl/ls-tree-oid-only (2022-01-03) 8 commits
889 - . ls-tree.c: introduce "--format" option
890 - . ls-tree.c: introduce struct "shown_data"
891 - . ls-tree.c: support --object-only option for "git-ls-tree"
892 - . ls-tree: split up the "init" part of show_tree()
893 - . ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
894 - . ls-tree: use "enum object_type", not {blob,tree,commit}_type
895 - . ls-tree: add missing braces to "else" arms
896 - . ls-tree: remove commented-out code
897 -
898 - "git ls-tree" learns "--oid-only" option, similar to "--name-only".
899 -
900 - Expecting a reroll.
901 - cf. <nycvar.QRO.7.76.6.2201041533540.7076@tvgsbejvaqbjf.bet>
902 - cf. <nycvar.QRO.7.76.6.2201041615560.7076@tvgsbejvaqbjf.bet>
903 - source: <cover.1641043500.git.dyroneteng@gmail.com>
904 -
905 -
906 -* ds/fetch-pull-with-sparse-index (2021-12-22) 5 commits
907 - (merged to 'next' on 2022-01-03 at f58da4a878)
908 - + test-read-cache: remove --table, --expand options
909 - + t1091/t3705: remove 'test-tool read-cache --table'
910 - + t1092: replace 'read-cache --table' with 'ls-files --sparse'
911 - + ls-files: add --sparse option
912 - + fetch/pull: use the sparse index
913 -
914 - "git fetch" and "git pull" are now declared sparse-index clean.
915 - Also "git ls-files" learns the "--sparse" option to help debugging.
916 -
917 - Will merge to 'master'.
918 - source: <pull.1080.v4.git.1640182856.gitgitgadget@gmail.com>
923 + source: <cover-v7-0.6-00000000000-20220111T130811Z-avarab@gmail.com>
924
925
921 -* jc/doc-submitting-patches-choice-of-base (2021-12-30) 1 commit
922 - (merged to 'next' on 2022-01-05 at eb97c01c24)
923 - + SubmittingPatchs: clarify choice of base and testing
924 -
925 - Extend the guidance to choose the base commit to build your work
926 - on, and hint/nudge contributors to read others' changes.
926 +* tl/ls-tree-oid-only (2022-01-06) 9 commits
927 + - cocci: allow padding with `strbuf_addf()`
928 + - ls-tree.c: introduce "--format" option
929 + - ls-tree.c: introduce struct "show_tree_data"
930 + - ls-tree.c: support --object-only option for "git-ls-tree"
931 + - ls-tree: optimize naming and handling of "return" in show_tree()
932 + - ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
933 + - ls-tree: use "enum object_type", not {blob,tree,commit}_type
934 + - ls-tree: add missing braces to "else" arms
935 + - ls-tree: remove commented-out code
936
928 - Will merge to 'master'.
929 - source: <xmqqh7apsv6s.fsf_-_@gitster.g>
937 + "git ls-tree" learns "--oid-only" option, similar to "--name-only",
938 + and more generalized "--format" option.
939 + source: <cover.1641440700.git.dyroneteng@gmail.com>
940
941
932 -* ab/config-based-hooks-2 (2021-12-22) 17 commits
942 +* ab/config-based-hooks-2 (2022-01-07) 17 commits
943 - run-command: remove old run_hook_{le,ve}() hook API
944 - receive-pack: convert push-to-checkout hook to hook.h
945 - read-cache: convert post-index-change to use hook.h
@@ -950,30 +960,10 @@ Release tarballs are available at:
960
961 More "config-based hooks".
962
953 - Needs review.
954 - At this point, as Ævar and Emily both read the major part of this
955 - series, a final and quick read-over plus an Ack by Emily on her
956 - part plus a serious review on the patches attributed to Ævar by
957 - somebody other than Ævar would be sufficient to move it in some
958 - direction (hopefully forward).
963 + Will merge to 'next', with minor nits?
964 source: <cover-v6-00.17-00000000000-20211222T035755Z-avarab@gmail.com>
965
966
962 -* js/branch-track-inherit (2021-12-20) 3 commits
963 - (merged to 'next' on 2022-01-03 at ab5fb34db3)
964 - + config: require lowercase for branch.*.autosetupmerge
965 - + branch: add flags and config to inherit tracking
966 - + branch: accept multiple upstream branches for tracking
967 - (this branch is used by gc/branch-recurse-submodules.)
968 -
969 - "git -c branch.autosetupmerge=inherit branch new old" makes "new"
970 - to have the same upstream as the "old" branch, instead of marking
971 - "old" itself as its upstream.
972 -
973 - Will merge to 'master'.
974 - source: <cover.1640039978.git.steadmon@google.com>
975 -
976 -
967 * jh/builtin-fsmonitor-part2 (2021-12-25) 31 commits
968 - fixup! t7527: create test for fsmonitor--daemon
969 - fixup! t/perf/p7519: speed up test on Windows
@@ -1030,17 +1020,19 @@ Release tarballs are available at:
1020 source: <20211117005701.371808-1-emilyshaffer@google.com>
1021
1022
1033 -* ab/only-single-progress-at-once (2022-01-03) 7 commits
1034 - - various *.c: use isatty(0|2), not isatty(STDIN_FILENO|STDERR_FILENO)
1023 +* ab/only-single-progress-at-once (2022-01-07) 7 commits
1024 + - *.c: use isatty(0|2), not isatty(STDIN_FILENO|STDERR_FILENO)
1025 - pack-bitmap-write.c: don't return without stop_progress()
1026 - progress.c: add temporary variable from progress struct
1027 - progress.c tests: test some invalid usage
1028 - progress.c tests: make start/stop commands on stdin
1029 - progress.c test helper: add missing braces
1040 - - leak tests: fix a memory leaks in "test-progress" helper
1030 + - leak tests: fix a memory leak in "test-progress" helper
1031
1032 Further tweaks on progress API.
1043 - source: <cover-v7-0.7-00000000000-20211217T041945Z-avarab@gmail.com>
1033 +
1034 + Getting there.
1035 + source: <cover-v8-0.7-00000000000-20211228T150728Z-avarab@gmail.com>
1036
1037 --------------------------------------------------
1038 [Discarded]
@@ -1057,3 +1049,35 @@ Release tarballs are available at:
1049 cf. <xmqqfsuosvrh.fsf@gitster.g>
1050 cf. <211101.86fssf3bn3.gmgdl@evledraar.gmail.com>
1051 source: <pull.1074.v3.git.git.1630462385587.gitgitgadget@gmail.com>
1052 +
1053 +
1054 +* tb/cruft-packs (2021-11-29) 17 commits
1055 + . sha1-file.c: don't freshen cruft packs
1056 + . builtin/gc.c: conditionally avoid pruning objects via loose
1057 + . builtin/repack.c: add cruft packs to MIDX during geometric repack
1058 + . builtin/repack.c: use named flags for existing_packs
1059 + . builtin/repack.c: allow configuring cruft pack generation
1060 + . builtin/repack.c: support generating a cruft pack
1061 + . builtin/pack-objects.c: --cruft with expiration
1062 + . reachable: report precise timestamps from objects in cruft packs
1063 + . reachable: add options to add_unseen_recent_objects_to_traversal
1064 + . builtin/pack-objects.c: --cruft without expiration
1065 + . builtin/pack-objects.c: return from create_object_entry()
1066 + . t/helper: add 'pack-mtimes' test-tool
1067 + . pack-mtimes: support writing pack .mtimes files
1068 + . chunk-format.h: extract oid_version()
1069 + . pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
1070 + . pack-mtimes: support reading .mtimes files
1071 + . Documentation/technical: add cruft-packs.txt
1072 +
1073 + Instead of leaving unreachable objects in loose form when packing,
1074 + or ejecting them into loose form when repacking, gather them in a
1075 + packfile with an auxiliary file that records the last-use time of
1076 + these objects.
1077 +
1078 + Dropped per author request.
1079 + cf. <Ydcev8HqCjycBJS+@nand.local>
1080 + cf. <865b99dd-0b18-9a07-49c1-3959a777c685@gmail.com>
1081 + cf. <c9437c89-9258-4034-9886-8a2aec46aa6b@gmail.com>
1082 + cf. <YaqiYGM48p5F9lS1@nand.local>
1083 + source: <cover.1638224692.git.me@ttaylorr.com>